Java的MD5、SHA-1加密

阅读更多

严格地说,MD5,SHA1非加密算法,它们都不可逆:

但不能阻止山大的女博士王某某的哈希碰撞~ 我擦~ 反正MD5也不安全了==

Java实现算法如下:

MD5(Message Digest algorithm 5,信息摘要算法)

SHA(Secure Hash Algorithm,安全散列算法)

 

例子:

package com.md5;

import java.math.BigInteger;
import java.security.MessageDigest;

public class Md5 {
public String makeMD5(String password) {
   MessageDigest md;
   try {
    // 生成一个MD5加密计算摘要
    md = MessageDigest.getInstance("md5"); // 同样可以使用SHA1
    // 计算md5函数
    md.update(password.getBytes());
    // digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符
    // BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值
    String pwd = new BigInteger(1, md.digest()).toString(16); //参数也可不只用16可改动,当然结果也不一样了
    System.err.println(pwd);
    return pwd;
   } catch (Exception e) {
    e.printStackTrace();
   }
   return password;
}

public static void main(String[] args) {
   Md5 md5 = new Md5();
   md5.makeMD5("123456");
}
}

你可能感兴趣的:(算法,java,哈希)