目录
碎碎念
MessageDigest 是什么?
常用的方法:
两种getInstance
update
digest
isEqual
SUN提供的常用的算法名称有:
使用的例子:
参考文献:
这是手写RPC的时候遇到的,正好学习一波
java.security.MessageDigest类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA-1或SHA-256 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。
MessageDigest 对象调用getInstance初始化,使用 update 方法处理数据。任何时候都可以调用 reset 方法重置摘要。一旦所有需要更新的数据都已经被更新了,应该调用 digest 方法之一完成哈希计算。
对于给定数量的更新数据,digest 方法只能被调用一次。在调用 digest 之后,MessageDigest 对象被重新设置成其初始状态。
static byte[] md5(String key) {MessageDigest md;try {// 返回实现指定摘要算法的 MessageDigest 对象md = MessageDigest.getInstance("MD5");// getBytes(String charsetName): 使用指定的字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中byte[] bytes = key.getBytes(StandardCharsets.UTF_8);// 使用指定的 byte 数组更新摘要md.update(bytes);} catch (NoSuchAlgorithmException e) { //NoSuchAlgorithmException: 当请求特定的加密算法但在环境中不可用时,将抛出此异常// 抛出非法状态异常throw new IllegalStateException(e.getMessage(), e);}// 通过执行诸如填充之类的最终操作完成哈希计算。在调用此方法之后,摘要被重置return md.digest();
}
下一篇:MySql变量用法详解