当前位置:首页 > java技术文章 > Java 信息摘要加密MD2、MD4、MD5实现详解

Java 信息摘要加密MD2、MD4、MD5实例实现方法

  • 发布时间:
  • 作者:码农之家原创
  • 点击:185

这篇文章主要知识点是关于java、信息摘要加密、md2、md4、md5、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Java性能权威指南
  • 类型:Java大小:66.1 MB格式:PDF作者:奥克斯
立即下载

Java 信息摘要加密MD2、MD4、MD5实现详解

对于用户数据的保密一直是各个互联网企业头疼的事,那如何防止用户的个人信息泄露呢?今天为大家介绍一种最简单的加密方式--信息摘要算法MD。它如何来保护用户的个人信息呢?其实很简单,当获得到用户的信息后,先对其进行加密,然后将加密的结果保存到数据库,这样即使被盗,用户的数据也不会丢失。下面上代码:

JAVA的jdk提供了MD2和MD5的加密方式, JAVA不支持MD4的jdk加密方式,jdk的实现如下:

private static void MD2_jdk(){
    try {
      MessageDigest digest = MessageDigest.getInstance("MD2");//获得消息摘要MD2对象
      byte[] md2Byte = digest.digest(src.getBytes());
      System.out.println("md2Byte :"+md2Byte.toString());
      System.out.println("md2Byte :"+Hex.encodeHexString(md2Byte));
    } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
    }  
  }
  
  private static void MD5_jdk(){
    try {
      MessageDigest digest = MessageDigest.getInstance("MD5");//获得消息摘要MD5对象
      byte[] md5Byte = digest.digest(src.getBytes());
      System.out.println("md5Byte :"+md5Byte.toString());
      System.out.println("md5Byte :"+Hex.encodeHexString(md5Byte));
    } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
    }
  }

bc提供了MD2\4\5的加密实现(bc使用需要添加bc的jar包):

private static void MD2_bc(){
    Digest digest = new MD2Digest();//通过BC获得消息摘要MD2对象
    digest.update(src.getBytes(), 0, src.getBytes().length);
    byte[] md2Byte = new byte[digest.getDigestSize()];
    digest.doFinal(md2Byte, 0);
    System.out.println("md2Byte :"+md2Byte.toString());
    System.out.println("md2Byte : "+org.bouncycastle.util.encoders.Hex.toHexString(md2Byte));
  }
  
  private static void MD4_bc(){
    Digest digest = new MD4Digest();//通过BC获得消息摘要MD4对象
    digest.update(src.getBytes(), 0, src.getBytes().length);
    byte[] md4Byte = new byte[digest.getDigestSize()];
    digest.doFinal(md4Byte, 0);
    System.out.println("md4Byte :"+md4Byte.toString());
    System.out.println("md4Byte : "+org.bouncycastle.util.encoders.Hex.toHexString(md4Byte));
  }
  
  private static void MD5_bc(){
    Digest digest = new MD5Digest();//通过BC获得消息摘要MD5对象
    digest.update(src.getBytes(), 0, src.getBytes().length);
    byte[] md5Byte = new byte[digest.getDigestSize()];
    digest.doFinal(md5Byte, 0);
    System.out.println("md5Byte :"+md5Byte.toString());
    System.out.println("md5Byte : "+org.bouncycastle.util.encoders.Hex.toHexString(md5Byte));
  }

通过bc为jdk添加一个动态的MD4方法:

private static void MD4_bc_jdk(){
    try {
      Security.addProvider(new BouncyCastleProvider());
      MessageDigest md = MessageDigest.getInstance("MD4");
      byte[] md4Byte = md.digest(src.getBytes());
      System.out.println("md4Byte :"+md4Byte.toString());
      System.out.println("md4Byte :"+Hex.encodeHexString(md4Byte));
    } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
    }
  }

最后为大家介绍一下CC的MD2\5的实现:

DigestUtils.md2Hex(src.getBytes());
DigestUtils.md5Hex(src.getBytes());

注:src为设置的一个字符串。

到这里消息摘要加密算法的MD2\4\5的实现到此讲解完毕,对Base64和对称加密算法有兴趣的朋友可以看一下我之前分享的博客。小生很喜欢信息安全,那位有兴趣,欢迎交流。(1453296946@qq.com)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

推荐内容

vue的keep-alive实例用法

JS中批量给元素绑定事件过程中的相关问题使用闭包解决详解

win10下安装mysql服务器社区的图文教程

React中跨组件分发状态的方法总结

js的变量提升及实例用法

展开 +

收起 -

Java 相关电子书
学习笔记
网友NO.257946

java实现AES可逆加密算法的实例知识点

本文实例为大家分享了java实现AES可逆加密算法的具体代码,供大家参考,具体内容如下 package com.hdu.encode; import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder; /** * AES 是一种可逆加密算法,对用户的敏感信息加密处理 对原始数据进行AES加密后,在进行Base64编码转化; */public class AESOperator { /* * 加密用的Key 可以用26个字母和数字组成 此处使用AES-128-CBC加密模式,key需要为16位。 */// a0b891c2d563e4f7 private String sKey = abcdef0123456789; private String ivParameter = 0123456789abcdef; private static AESOperator instance = null; private AESOperator() { } public static AESOperator getInstance() { if (instance == null) instance = new AESOperator(); return instance; } // 加密 public String encrypt(String sSrc){ String result = ; try { Cipher cipher; cipher = Cipher.getInstan……

网友NO.398298

Java实现自动压缩文件并加密的方法示例

本文实例讲述了Java实现自动压缩文件并加密的方法。分享给大家供大家参考,具体如下: 实现功能:自动压缩并加密 /**** @Title: zipFilesAndEncrypt* @Description: 将指定路径下的文件压缩至指定zip文件,并以指定密码加密,若密码为空,则不进行加密保护* @param srcFileName 待压缩文件路径* @param zipFileName zip文件名* @param password 加密密码* @return* @throws Exception*/public void zipFilesAndEncrypt(String srcFileName,String zipFileName,String password) throws Exception{ ZipOutputStream outputStream=null; System.out.println("进入测试类"); if(StringUtils.isEmpty(srcFileName) || StringUtils.isEmpty(zipFileName)){ log.error("请求的压缩路径或者文件名有误"); return; } try { ZipParameters parameters = new ZipParameters(); parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); if(!StringUtils.isEmpty(password)){ ……

网友NO.964382

Java使用AES加密和解密的实例详解

Java使用AES加密和解密的实例详解 前言: AES的基本要求是,采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。1998年NIST开始AES第一轮分析、测试和征集,共产生了15个候选算法。1999年3月完成了第二轮AES2的分析、测试。2000年10月2日美国政府正式宣布选中比利时密码学家Joan Daemen 和 Vincent Rijmen 提出的一种密码算法RIJNDAEL 作为 AES. 在应用方面,尽管DES在安全上是脆弱的,但由于快速DES芯片的大量生产,使得DES仍能暂时继续使用,为提高安全强度,通常使用独立密钥的三级DES。但是DES迟早要被AES代替。流密码体制较之分组密码在理论上成熟且安全,但未被列入下一代加密标准。 AES加密数据块和密钥长度可以是128比特、192比特、256比特中的任意一个。 AES加密有很多轮的重复和变换。大致步骤如下:……

网友NO.718865

java实现MD5加密的方法小结

本文实例讲述了java实现MD5加密的方法。分享给大家供大家参考,具体如下: private String getMD5Str(String str) { MessageDigest messageDigest = null; try { messageDigest = MessageDigest.getInstance("MD5"); messageDigest.reset(); messageDigest.update(str.getBytes("UTF-8")); } catch (NoSuchAlgorithmException e) { System.out.println("NoSuchAlgorithmException caught!"); System.exit(-1); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } byte[] byteArray = messageDigest.digest(); StringBuffer md5StrBuff = new StringBuffer(); for (int i = 0; i byteArray.length; i++) { if (Integer.toHexString(0xFF byteArray[i])); else md5StrBuff.append(Integer.toHexString(0xFF } return md5StrBuff.toString();} 方法二 import java.security.MessageDigest;public class Test_MD5{ public final static String MD5(String s) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; try { byte[] strTemp = s.getBytes(); //使用MD5创建……

网友NO.242757

Java实现的3des加密解密工具类示例

本文实例讲述了Java实现的3des加密解密工具类。分享给大家供大家参考,具体如下: package com.gcloud.common;import org.apache.poi.poifs.property.Child;import org.bouncycastle.jce.provider.BouncyCastleProvider;import javax.crypto.*;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;import java.net.URL;import java.security.*;import java.security.spec.AlgorithmParameterSpec;/** * 三重数据加密算法工具类 * Created by charlin on 2017/9/11. */public class V3DESUtil { //密钥存放位置 public static String FILENAME = "d:/3des.key"; // 1为加密,0为解密 private int isEncrypt = -1; // 加密/解密密钥,长度为16byte或者24byte。 private String keyStr; // 要加密/解密信息(解密时需为十六进制显示的字符串) private String message; public V3DESUtil() { } public V3DESUtil(int isEncrypt……

<
1
>

电子书 编程教程 文档 软件 源码 视频

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757