黑马程序员技术交流社区
标题:
“md5”加密问题
[打印本页]
作者:
海是倒过来的天
时间:
2014-12-4 11:11
标题:
“md5”加密问题
“md5”加密的方法与实现?
作者:
龙骑将杨影枫
时间:
2014-12-5 09:16
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Md5Encryption {
public String getMD5Code(String code) throws NoSuchAlgorithmException{
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(code.getBytes());
byte[] md5Codes=md5.digest();
StringBuffer sb=new StringBuffer();
int md5Code;
for(int i=0;i<md5Codes.length;i++){
md5Code=md5Codes[i];
if(md5Code<0)
md5Code+=256;
if(md5Code<16)
sb.append(0);
sb.append(Integer.toHexString(md5Code));
}
return sb.toString().substring(8, 24);
}
}
复制代码
如果依托java本身的资源,我能想到的就是这种解决办法。
如果是赤手空拳去写一个,难度系数太高了。
作者:
as604049322
时间:
2014-12-5 10:53
本帖最后由 as604049322 于 2014-12-5 11:24 编辑
import java.security.MessageDigest;
class MD5Util {
public static void main(String[] args) {
System.out.println(MD5("20141205"));
System.out.println(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 {
// 获得MD5摘要算法的 MessageDigest 对象
MessageDigest md5Inst = MessageDigest.getInstance("MD5");
// 将源字符串以字节数组形式传入MessageDigest 对象并更新摘要
md5Inst.update(s.getBytes());
// 获得密文的字节数组
byte[] md = md5Inst.digest();
// 把密文转换成十六进制的字符串形式
char str[] = new char[md.length * 2];
int counnt = 0;
for(byte i:md){
str[counnt++] = hexDigits[i >>> 4 & 0xf];//取该字节高4位并查表
str[counnt++] = hexDigits[i & 0xf];//取该字节低4位并查表
}
return new String(str);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2