Md5加密

加密技术

1. 步骤:

1.散列技术(签名技术)
2.表明算法md5
3.将你要输入的密码转换成字节数组(md5加密后都是16字节)
4.一个字节对应2个字符,所以16字节对应32
5.循环加密的数组,将其转换为16进制数

2.代码如下:

package Util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Md5 {
static String[] chars={"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};

public static void main(String[] args) throws NoSuchAlgorithmException {
    //消息签名(摘要),参数代表算法名称
    MessageDigest md5 = MessageDigest.getInstance("md5");
    //getBytes()将一个string的字符串转换为一个系统默认的字节数组。
    byte[] digest = md5.digest("123456789".getBytes());
    //md5加密的结果都是16字节,输出结果都是16
    System.out.println(digest.length);
    //一个字节对应两个字符,所以16个字节要32个字符,所以StringBuilder(32)
    StringBuilder sb = new StringBuilder(32);
    //将结果转换为16进制字符,0-9 A-F
    for (int i = 0; i <digest.length;  i++) {
        byte x= digest[i];    //一个字节对应两个字符
        //一个字节占8位,4位一个字符
        int h=0x0f&(x >>> 4); // 取得高位
        int l = 0x0f & x;  // 取得低位
        sb.append(chars[h]).append(chars[l]);
    }
    System.out.println(sb.toString());
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值