吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1119|回复: 0
收起左侧

[Android 讨论] 算法基础(消息摘要算法)

[复制链接]
Chenda1 发表于 2022-3-30 23:12
本帖最后由 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);




发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 17:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表