MD5算法
以下是从网上看到的md5加密算法,做个备份:
import java.security.MessageDigest;
/**
* @msg 对给定的字符串进行MD5算法加密
* @since 2008-10-04 于北京整理
* @author jiangxc
* @version 1.0
*/
public class MD5
{
/**
* 主函数
*/
public static void main(String[] args) throws Exception
{
//需要加密的字符串
String ss = "111111";
// JDK支持的默认情况,较常用
System.out.println(MD5(ss));
// 加密钥情况下加密 自己实现
System.out.println("转换后加密:" + MD5Encode(ss));
}
public final static String MD5(String s)
{
try {
byte[] btInput = s.getBytes();
MessageDigest mdInst = MessageDigest.getInstance("MD5");
mdInst.update(btInput);
byte[] md = mdInst.digest();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < md.length; i++) {
int val = ((int) md[i]) & 0xff;
if (val < 16)
sb.append("0");
sb.append(Integer.toHexString(val));
}
// 默认为32位加密码
// 16位加密码
return "32位加密码:" + sb.toString() + "/n16位加密码:"
+ sb.toString().substring(8, 24);
} catch (Exception e) {
System.err.println("error");
return null;
}
}
// 加密码钥
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
private final static String byteArrayToHexString(byte[] b)
{
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++)
{
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}
private final static String byteToHexString(byte b)
{
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
public final static String MD5Encode(String password) throws Exception
{
MessageDigest md = MessageDigest.getInstance("MD5");
return byteArrayToHexString(md.digest(password.getBytes()));
}
}
本文提供了一个使用Java实现的MD5加密算法示例,包括如何利用MessageDigest类对字符串进行加密处理,并提供了完整的源代码及说明。
1380

被折叠的 条评论
为什么被折叠?



