MessageDigest简介
java.security.MessageDigest
类用于为应用程序提供信息摘要算法的功能,如 MD5
或 SHA
算法。简单点说就是用于生成散列码。信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。
源码示例
在下面的示例中,抽取的是shiro
中的SimpleHash
类源码使用的是shiro
中的MessageDigest
,通过对名为admin
的username
进行盐值计算,然后依据此盐值对密码123456
进行md5
计算。
源码如下:
@Slf4j
public class MessageDigestTest {
/**
* 盐值计算
* @param username 用户名
* @return byte[] 盐值byte数组
*/
public byte[] getSalt(String username){
// 计算盐值
ByteSource byteSource = ByteSource.Util.bytes(username);
return byteSource.getBytes();
}
/**
* 将字符串转换成byte数组
* @param str 输入字符串
* @return byte[]
*/
private byte[] getByte(String str) {
return str.getBytes();
}
/**
* 测试