MD系列算法的实现是通过MessageDigest类来完成的,如果需要以流的处理方式完成消息摘要,则需要使用DigestInputStream和DigestOutputStream。

MD4

package org.zlex.chapter06_1_2;import java.security.MessageDigest;
import java.security.Security;import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.util.encoders.Hex;/*** MD4加密组件* * @author 梁栋* @version 1.0* @since 1.0*/
public abstract class MD4Coder {/*** MD4加密* * @param data*            待加密数据* @return byte[] 消息摘要* * @throws Exception*/public static byte[] encodeMD4(byte[] data) throws Exception {// 加入BouncyCastleProvider支持Security.addProvider(new BouncyCastleProvider());// 初始化MessageDigestMessageDigest md = MessageDigest.getInstance("MD4");// 执行消息摘要return md.digest(data);}/*** MD4加密* * @param data*            待加密数据* @return String 消息摘要* * @throws Exception*/public static String encodeMD4Hex(byte[] data) throws Exception {// 执行消息摘要byte[] b = encodeMD4(data);// 做十六进制编码处理return new String(Hex.encode(b));}
}

MD5

/*** 2009-9-3*/
package org.zlex.chapter06_1_3;import org.apache.commons.codec.digest.DigestUtils;/*** MD5加密组件* * @author 梁栋* @version 1.0* @since 1.0*/
public abstract class MD5Coder {/*** MD5加密* * @param data*            待加密数据* @return byte[] 消息摘要* * @throws Exception*/public static byte[] encodeMD5(String data) throws Exception {// 执行消息摘要return DigestUtils.md5(data);}/*** MD5加密* * @param data*            待加密数据* @return byte[] 消息摘要* * @throws Exception*/public static String encodeMD5Hex(String data) throws Exception {// 执行消息摘要return DigestUtils.md5Hex(data);}
}

Java加密与解密的艺术~MD算法实现相关推荐

  1. Java加密与解密的艺术~SHA算法实现

    MesssageDigest类也支持SHA算法,主要包含SHA-1.SHA-256.SHA-384和SHA-512四种算法.通过第三方加密组件包Bouncy Castle,可支持SHA-224算法. ...

  2. Java加密与解密的艺术~SHA算法简介

    SHA(Secure Hash Algorithm,安全散列算法)算法是在MD4算法的基础上演进而来的,通过SHA算法同样能够获得一个固定长度的摘要信息.与MD系列算法不同的是:若输入的消息不同则与其 ...

  3. 安卓逆向_25 --- 密码学 之 《Java加密与解密的艺术》

    <Java加密与解密的艺术>中文 PDF版 :https://www.jb51.net/books/65048.html 1. 密码学应用 :https://www.bilibili.co ...

  4. Java加密与解密的艺术~AES-GCM-NoPadding实现

    来源:Java AES加密和解密_一名可爱的技术搬运工-CSDN博客 高级加密标准 (AES,Rijndael)是一种分组密码加密和解密算法,是全球使用最广泛的加密算法. AES使用128.192或2 ...

  5. Java加密与解密的艺术~RSA实现

    RSA 实现 /*** 2008-6-11*/ package org.zlex.chapter08_2;import java.security.Key; import java.security. ...

  6. Java加密与解密的艺术~数字证书~证书使用openssl

    证书工具 /*** 2009-5-20*/ package org.zlex.chapter10_2;import java.io.FileInputStream; import java.secur ...

  7. Java加密与解密的艺术~数字证书~证书使用keytool

    证书工具 /*** 2009-5-20*/ package org.zlex.chapter10_1;import java.io.FileInputStream; import java.secur ...

  8. Java加密与解密的艺术~数字证书~证书管理openssl

    OpenSSL功能远胜于KeyTool,可用于根证书,服务器证书和客户证书的管理 这里使用的是Win32OpenSSL_Light-1_0_1e.exe http://www.slproweb.com ...

  9. Java加密与解密的艺术~DESede实现

    DESede 实现 /*** 2009-10-5*/ package org.zlex.chapter07_2;import java.security.Key;import javax.crypto ...

最新文章

  1. lodop打印无内容_民法典新确立的打印遗嘱应如何订立能有效?| 附文书范本
  2. AI大师张钹领衔,清华AI研究院推出知识计算开放平台
  3. 那些不能错过的Xcode插件
  4. springboot和kafka集成
  5. 【正一专栏】欧冠四强猜想—不是冤家不聚首
  6. 音视频技术开发周刊 | 197
  7. I.Mx6 使用串口连接PSAM卡的注意事项
  8. redis☞ python客户端
  9. thymeleaf 使用页面报错_SpringBoot 使用thymeleaf 跳转页面时,总是提示404找不到页面...
  10. 谷歌推出 Kotlin 免费在线课程
  11. 中心对称又是轴对称的图形_2020广东省考行测备考:图形推理之对称知多少
  12. 闭包与setTimeout
  13. IIS导入SSL证书
  14. 服务器主板电源适配器维修,自己修理笔记本电脑电源适配器
  15. 【产品设计-小程序】小胖工具箱系列—汇率换算
  16. 计算机的基本组成和工作原理
  17. 通过wvdial完成4G自动拨号上网
  18. linux 桌面环境推荐,8种最佳的Ubuntu桌面环境(18.04 Bionic Beaver Linux)
  19. 服务器双路供电原理,双路电源上电顺序控制电路原理图
  20. 【新手向】centOS 7 linux虚拟机联网具体步骤

热门文章

  1. 技术动态 | 知识图谱构建的研究已走入下半场,但大规模落地应用仍需时间
  2. 论文浅尝 - ICLR2020 | 通过神经逻辑归纳学习有效地解释
  3. 论文浅尝 | 时序与因果关系联合推理
  4. 最全的Pycharm debug技巧
  5. 如何解决NLP分类任务的11个关键问题:类别不平衡低耗时计算小样本鲁棒性测试检验长文本分类 JayLou娄杰
  6. 常识知识在AI不同领域应用的最新研究进展
  7. 第一节《Git初始化》
  8. SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
  9. 操作系统学习笔记-2.1.5线程概念和多线程模型
  10. linux的基础知识——模型结构和数据包的封装