好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 18077484116 于 2022-3-30 23:27 编辑
消息摘要算法
常见算法
MD5
SHA1
SHA256
SHA512
HmacMD5
HmacSHA1
HmacSHA256
验证结果时通常进行文本比对
密文不可逆|定长 常用于验证文件完整性、签名sign
MD系列算法
MD2 | MD5 | Java 6 实现 | MD4 | Bouncy Castle 实现 |
//初始化MessageDigest,并指定MD5算法
MessageDigest md=MessageDigest.getInstance("MD5");
//摘要处理
byte[] b =md.digest(data);
md.update("xx".getBytes());相当于data
SHA系列算法
SHA-1 | SHA-256 | SHA-384 | SHA-512 | Java 6 实现 | SHA-224 | Bouncy Castle 实现 |
//初始化MessageDigest,并指定SHA算法
MessageDigest md=MessageDigest.getInstance("SHA-1 ");
//摘要处理
byte[] b =md.digest(data);
md.update("xx".getBytes());相当于data
MAC算法(消息认证码算法)
HmacMD5 | | HmacSHA1 | HmacSHA256 | HmacSHA384 | HmacSHA512 | Java 6 实现 | HmacMD2 | | HmacMD4 | HmacSHA224 | Bouncy Castle 实现 |
//初始化KeyGenerator
KeyGenerator keyGenerator = keyGenerator.getInstance("HmacMD5");
//产生密钥
SecretKey secretKey = keyGenerator.generateKey();
//获得密钥
byte[] key = secretKey.getEncoded();
//还原密钥
SecretKey secretKey = new SecretKeySpec(key,"HmacMD5");
//实例化Mac
Mac mac = Mac.getInstance(secretKey.getAlgorithm());
//初始化Mac
mac.init(secretKey);
//执行消息摘要
byte[] data =mac.doFinal(data);
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|