您的位置:首页 > 编程语言 > Java开发

Java实现加解密(二)之消息摘要算法加密

2017-10-13 00:00 495 查看
摘要: Java加解密系列的第二篇学习笔记,主要包括在Java中使用MD、SHA、MAC三种消息摘要算法实现加解密,以及他们的应用场景。

一、消息摘要算法

1.分类

MD(Message Digest) 消息摘要

SHA(Secure Hash Algorithm) 安全哈希算法

MAC(Message Authentication Code) 消息认证码

2.作用

验证数据完整性

数字签名核心算法

二、消息摘要算法——MD

1.MD5

2.MD家族(128位摘要信息)

MD2 128位 JDK实现

MD4 128位 Bouncy Castle实现

MD5 128位 JDK实现

3.应用,比如用户注册,密码存储摘要处理后的密文



4.代码实现,可参考本人码云项目:https://gitee.com/kevinshaw/Security 的MyMD类

三、消息摘要算法——SHA

1.概述,由美国安全局设计

安全散列码算法

固定长度摘要信息

SHA-1、SHA-2(SHA-224、SHA-256、SHA384、SHA-512)

SHA-1 160位 JDK实现

SHA-224 224位 Bouncy Castle实现

SHA-256 256位 JDK实现

SHA-384 384位 JDK实现

SHA-512 512位 JDK实现

2.应用:防止传输过程中消息的篡改





3.代码实现,可参考本人码云项目:https://gitee.com/kevinshaw/Security 的MySHA类

四、消息摘要算法——MAC 兼容了MD和SHA两种算法的特性,并且在此基础上加入密钥

1.分类

MAC(Message Authentication Code) 消息认证码

HMAC(keyed-Hash Message Authentication Code) 含有密钥的散列函数算法

融合MD、SHA

--MD系列:HmacMD2: 128位 Bouncy Castle实现

HmacMD4: 128位 Bouncy Castle实现

HmacMD5: 128位 JDK实现

--SHA系列:HmacSHA1: 160位 JDK实现

HmacSHA224: 224位 Bouncy Castle实现

HmacSHA256: 256位 JDK实现

HmacSHA384: 384位 JDK实现

HmacSHA512: 512位 JDK实现

2.应用:如SecuresCRT,Linux操作系统的客户端



3.代码实现,可参考本人码云项目:https://gitee.com/kevinshaw/Security 的MyHmac类

五、其他的消息摘要算法

RipeMD

Tiger

Whirlpool

GOST3411

以上均由Bouncy Castle进行实现

本文为原创文章,如果对你有一点点的帮助,别忘了点赞哦!比心!如需转载,请注明出处,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java MD SHA MAC