对于用户数据的保密一直是各个互联网企业头疼的事,那如何防止用户的个人信息泄露呢?今天为大家介绍一种最简单的加密方式——信息摘要算法。它如何来保护用户的个人信息呢?其实很简单,当获得到用户的信息后,先对其进行加密,然后将加密的结果保存到数据库,这样即使被盗,用户的数据也不会丢失。下面上代码:
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)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。