Java摘要算法学习日记

摘要的作用

  • 摘要的作用主要是验证数据的完整性
    举个例子:
    commons Codec下载页我们去apche下载jar包时网页上有个sha512的链接,点击后会看到一串sha512摘要值
b6d517db15aedc424d112b8f3282c63f56aae66adaf317baf9853da65e291eb03fb5da51792aa437c7fdce63f6685c75373265e2a035b51e7525048716d7bfe3

当我们下载玩文件后查看一下文件的sha512摘要值,如果和网站上给出的一样则说明文件是完整的,否则文件就是不完整的。

MD家族的摘要算法

算法摘要长度实现方
MD2128JDK
MD4128Bouncy Castle
MD5128JDK

Bouncy Castle是对JDK的扩展补充、commons Codec是对jdk已有的算法提供简便操作

如果是计算MD5或MD2:选择用apche commons Codec提供的实现会比较好,因为它基于原生jdk上给我们进行封装,api比较友善

/*
apche commons Codec提供便捷计算MD5和MD2方法
*/
String sc = "study security md";
System.out.println("cc  md5Hex:"+ DigestUtils.md5Hex(sc));
System.out.println("cc  md2Hex:"+DigestUtils.md2Hex(sc));

md摘要的使用场景

  • 实现用户密码的加密存储
    利用摘要算法对用户密码加密存储过程

sha(安全散列算法)

算法摘要长度实现方
SHA-1160JDK
SHA-224224Bouncy Castle
SHA-256256JDK
SHA-384384JDK
SHA-512512JDK
//apche commons Codec提供便捷计算sha1
System.out.println("cc1 sha1:"+ DigestUtils.sha1Hex(sc));
System.out.println("cc2 sha1:"+ DigestUtils.sha1Hex(sc.getBytes()));

sha算法的使用场景

  • 网站安全证书的指纹
    查看网站安全证书内容- 消息鉴别
    sha消息鉴别过程

MAC(含有秘钥的散列函数算法)

它是一个sha和md的缝合怪,同时包含秘钥

算法摘要长度实现方
HmacMD2128JDK
HmacMD4128Bouncy Castle
HmacMD5128JDK
HmacSHA-1160JDK
HmacSHA-224224Bouncy Castle
HmacSHA-256256JDK
HmacSHA-384384JDK
HmacSHA-512512JDK
String key = "aaaaaaaaaa";
//commons codec做HMAC-MD5摘要
String hmacMd5 = new HmacUtils(HmacAlgorithms.HMAC_MD5, key).hmacHex(sc);
System.out.println("cc  hmacMD5Hex:"+ hmacMd5);
  • 消息鉴别
    mac消息鉴别过程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值