Java实现MD5加密的方法

网友投稿 177 2023-07-31


Java实现MD5加密的方法

本文实例讲述了java实现MD5加密的方法。分享给大家供大家参考。具体实现方法如下:

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

public class MD5HashUtil

{

private MessageDigest md = null;

private static MD5HashUtil md5 = null;

private static final char[] hexChars ={'0http://','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

/**

* Constructor is private so you must use the getInstance method

*/

private MD5HashUtil() throws NoSuchAlgorithmException

{

md = MessageDigest.getInstance("MD5");

}

/**

* This returns the singleton instance

*/

public static MD5HashUtil getInstance()throws NoSuchAlgorithmException

{

if (md5 == null)

{

md5 = new MD5HashUtil();

}

return (md5);

}

public static String hashCode(String dataToHash) throws NoSuchAlgorithmException{

return getInstance().hashData(dataToHash.getBytes());

}

public static String hashCode(byte[] dataToHash) throws NoSuchAlghttp://orithmException{

return getInstance().hashData(dataToHash);

}

public String hashData(byte[] dataToHash) {

return hexStringFromBytes((calculateHash(dataToHash))).toLowerCase();

}

private byte[] calculateHash(byte[] dataToHZbLZHbash)

{

md.update(dataToHash, 0, dataToHash.length);

return (md.digest());

}

public String hexStringFromBytes(byte[] b)

{

String hex = "";

int msb;

int lsb = 0;

int i;

// MSB maps to idx 0

for (i = 0; i < b.length; i++)

{

msb = ((int)b[i] & 0x000000FF) / 16;

lsb = ((int)b[i] & 0x000000FF) % 16;

hex = hex + hexChars[msb] + hexChars[lsb];

}

return(hex);

}

public static void main(String args[]) throws NoSuchAlgorithmException

{

String string = "my name is zhangli";

System.out.prinZbLZHbtln(string);

System.out.println(hashCode(string));

}

}

如上代码为java语言实现md5加密算法,输出为加密后的密文!

通常将加密后的密文保存在数据库中,如果需要比较只比较他们的用md5加密过后的密文。

同时,md5加密算法是不可逆的,破解的难度很高,虽然有人破解了md5,但是他们所用的硬件环境不是我们普通的计算机所比拟的,山大的一位很牛的女教授也破解了md5,不过不怎么了解

希望本文所述对大家的java程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java获得mysql和oracle链接的类
下一篇:java中全排列的生成算法汇总
相关文章

 发表评论

暂时没有评论,来抢沙发吧~