Java之MD5加密

简介:   一、Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。

  一、Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。

  MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译 摘要算法哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、 MD3MD4
MD5算法具有以下特点:
  1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
  2、容易计算:从原数据计算出MD5值很容易。
  3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
  4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
MD5的作用是让大容量信息在用 数字签名软件签署私人 密钥前被" 压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的 十六进制数字串)。除了MD5以外,其中比较有名的还有 sha-1RIPEMD以及Haval等。
  二、我这里谢了一个简单的例子,用于参考。
package com.troy.jpa.util;

import java.security.MessageDigest;

public class MD5Util {

    private static final char[] DIGITS_LOWER = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};

    //通过MD5进行加密
    public static String encrpytionByMd5(String data) throws Exception {
        //获取MD5的摘要
        MessageDigest messageDigest = MessageDigest.getInstance("MD5");
        //使用指定的直接更新摘要
        messageDigest.update(data.getBytes());
        //获取计算过后的数据
        byte[] digest = messageDigest.digest();
        //将密文转成32为,输出成字符串
        return new String(encodeHex(digest));
    }

    //字节数据装换
    private static char[] encodeHex(byte[] data) {
        //获取数据字节长度
        int n = data.length;
        //a << b 的意思就是a*2的b次方,>>就是除以
        char[] out = new char[n << 1];
        int i = 0;
        for(int v = 0; i < n; ++i) {
            out[v++] = DIGITS_LOWER[(240 & data[i]) >>> 4];
            out[v++] = DIGITS_LOWER[15 & data[i]];
        }
        return out;
    }

    public static void main(String[] args) {
       try {
           String data = "123456";
           String md5 = encrpytionByMd5(data);
           System.out.println(md5);
       } catch (Exception e) {
           e.printStackTrace();
       }
    }
}

 

相关文章
|
1天前
|
存储 NoSQL 数据库
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
这篇文章讲述了在分布式微服务系统中添加用户注册和登录功能的过程,重点介绍了用户注册时通过远程服务调用第三方服务获取短信验证码、使用Redis进行验证码校验、对密码进行MD5加密后存储到数据库,以及用户登录时的远程服务调用和密码匹配校验的实现细节。
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
|
4天前
|
存储 算法 Java
在Java中使用MD5对用户输入密码进行加密存储、同时登录验证。
这篇文章详细介绍了在Java项目中如何使用MD5算法对用户密码进行加密存储和登录验证,包括加入依赖、编写MD5工具类、注册时的密码加密和登录时的密码验证等步骤,并通过示例代码和数据库存储信息展示了测试效果。
在Java中使用MD5对用户输入密码进行加密存储、同时登录验证。
|
8天前
|
JavaScript 算法 数据安全/隐私保护
烯牛数据JS逆向:MD5数据加密?不存在的!
烯牛数据JS逆向:MD5数据加密?不存在的!
23 1
|
5天前
|
Java C# 数据安全/隐私保护
如何 使 Java、C# md5 加密的值保持一致
如何 使 Java、C# md5 加密的值保持一致
6 0
|
3月前
|
算法 Java 数据安全/隐私保护
java MD5 32位加密
java MD5 32位加密
43 0
|
3月前
|
编解码 算法 安全
怎么Java进行MD5摘要加密?
MD5(Message-Digest Algorithm 5)是一种常用的摘要算法,用于将任意长度的数据转换为固定长度的摘要值(通常为128位)。MD5算法的原理是将原始数据分成若干个固定长度的块,对每个块进行一系列的数据处理,最终得到一个128位的摘要值。这个摘要值可以作为数据的唯一标识,用于验证数据的完整性和真实性。
64 1
|
2月前
|
算法 Java 数据处理
Java中MD5加密算法的实现
Java中MD5加密算法的实现
|
1月前
|
算法 安全 Java
Java中MD5加密算法的原理与实现详解
Java中MD5加密算法的原理与实现详解
|
2月前
|
Java 数据安全/隐私保护
JAVA中MD5加密(MD5工具类)
JAVA中MD5加密(MD5工具类)
53 1
|
1月前
|
算法 Java 数据处理
Java中MD5加密算法的实现
Java中MD5加密算法的实现