加密技术
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());
}
}