欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > java加解密系列之摘要算法

java加解密系列之摘要算法

2025/2/23 23:57:26 来源:https://blog.csdn.net/tergou/article/details/144175529  浏览:    关键词:java加解密系列之摘要算法

摘要算法

  • 概念
    • 常用摘要算法
    • 基本使用
    • 辅助函数

概念

摘要算法,通常用于对数据计算摘要用以签名或者不可逆加密(明文密码加密)等场景。
摘要算法的特点

常用摘要算法

  • MD5(摘要长度16字节)
  • SHA-1(第一代散列算法,摘要长度20字节)
  • SHA-2(第二代散列算法,后面数字代表 摘要位数
    衍生具体的算法包括:
    • SHA - 224
    • SHA - 256
    • SHA - 384
    • SHA - 512
  • SHA - 3(第三代散列算法,基于第二代改善而来,后面数字代表 摘要位数但是低版本JDK并不支持
    • SHA3 - 224
    • SHA3 - 256
    • SHA 3- 384
    • SHA3 - 512

基本使用

各种散列算法的使用基本都是一致的。

  1. 声明摘要计算器
  2. 加载待计算摘要的数据
  3. 计算摘要,得到字节数组
String data = "待计算摘要的数据";
// 声明摘要计算器
MessageDigest sha3256Digest = MessageDigest.getInstance("SHA3-256");
// 加载待计算的数据
sha3256Digest.update(data.getBytes());
// 计算摘要
byte[] digest = sha3256Digest.digest();

辅助函数

字节数组转16进制字符串

byte[] digest = new byte[]{};
StringBuilder hexString = new StringBuilder();
for (byte b : digest) {String hex = Integer.toHexString(0xff & b);if (hex.length() == 1) {hexString.append('0');}hexString.append(hex);
}
System.out.println("16进制字符串: " + hexString.toString());

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词