欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java的MD5、SHA-1加密 博客分类: Java 加密 哈希算法 算法java哈希 

程序员文章站 2024-03-18 09:37:58
...

严格地说,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");
}
}