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

  

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

  

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

        私有静态孔隙MD2_jdk () {   尝试{   MessageDigest消化=MessageDigest.getInstance (MD2 ");//获得消息摘要MD2对象   byte [] md2Byte=digest.digest (src.getBytes ());   system . out。println (“md2Byte:”+ md2Byte.toString ());   system . out。println (“md2Byte:”+ Hex.encodeHexString (md2Byte));   }捕捉(NoSuchAlgorithmException e) {   e.printStackTrace ();   }   }      私有静态孔隙MD5_jdk () {   尝试{   MessageDigest消化=MessageDigest.getInstance (MD5 ");//获得消息摘要MD5对象   byte [] md5Byte=digest.digest (src.getBytes ());   system . out。println (“md5Byte:”+ md5Byte.toString ());   system . out。println (“md5Byte:”+ Hex.encodeHexString (md5Byte));   }捕捉(NoSuchAlgorithmException e) {   e.printStackTrace ();   }   }      

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

        私有静态孔隙MD2_bc () {   消化消化=new MD2Digest();//通过BC获得消息摘要MD2对象   digest.update (src.getBytes () 0 src.getBytes () . length);   byte [] md2Byte=new byte [digest.getDigestSize ());   消化。doFinal (md2Byte 0);   system . out。println (“md2Byte:”+ md2Byte.toString ());   system . out。println (“md2Byte:”+ org.bouncycastle.util.encoders.Hex.toHexString (md2Byte));   }      私有静态孔隙MD4_bc () {   消化消化=new MD4Digest();//通过BC获得消息摘要MD4对象   digest.update (src.getBytes () 0 src.getBytes () . length);   byte [] md4Byte=new byte [digest.getDigestSize ());   消化。doFinal (md4Byte 0);   system . out。println (“md4Byte:”+ md4Byte.toString ());   system . out。println (“md4Byte:”+ org.bouncycastle.util.encoders.Hex.toHexString (md4Byte));   }      私有静态孔隙MD5_bc () {   消化消化=new MD5Digest();//通过BC获得消息摘要MD5对象   digest.update (src.getBytes () 0 src.getBytes () . length);   byte [] md5Byte=new byte [digest.getDigestSize ());   消化。doFinal (md5Byte 0);   system . out。println (“md5Byte:”+ md5Byte.toString ());   system . out。println (“md5Byte:”+ org.bouncycastle.util.encoders.Hex.toHexString (md5Byte));   }      

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

        私有静态孔隙MD4_bc_jdk () {   尝试{   安全。addProvider(新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));   }捕捉(NoSuchAlgorithmException e) {   e.printStackTrace ();   }   }      

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

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

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

  

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

  

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

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