MD5算法给密码加密的用法

luyun2011 2010-09-30 12:28:46
用MD5算法给密码加密怎么用啊,原理是什么?
MD5算法的java类我已经有了
...全文
287 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhyou110z 2010-10-08
學習。。
回复
zizai0714 2010-10-08
[Quote=引用 15 楼 waitdream 的回复:]
引用 14 楼 sxzlc 的回复:
引用 8 楼 marqio 的回复:

你不是已经有了Java文件了,直接调用加密方法然后把要加密的字符串传进去,返回一个加密后的字符串。解密调用解密的方法就可以了,不知道你的文件里是否有这个方法。没有的话发你一个



MD5 是不可逆加密。



据说13位以下的纯数字MD5已经完全可以直接破解了。
[/Quote]
Md5算法被破解了?
回复
waitdream 2010-10-08
[Quote=引用 14 楼 sxzlc 的回复:]
引用 8 楼 marqio 的回复:

你不是已经有了Java文件了,直接调用加密方法然后把要加密的字符串传进去,返回一个加密后的字符串。解密调用解密的方法就可以了,不知道你的文件里是否有这个方法。没有的话发你一个



MD5 是不可逆加密。
[/Quote]


据说13位以下的纯数字MD5已经完全可以直接破解了。
回复
sun0322 2010-10-07
[Quote=引用 8 楼 marqio 的回复:]

你不是已经有了Java文件了,直接调用加密方法然后把要加密的字符串传进去,返回一个加密后的字符串。解密调用解密的方法就可以了,不知道你的文件里是否有这个方法。没有的话发你一个
[/Quote]


MD5 是不可逆加密。
回复
sun0322 2010-10-07
[Quote=引用 9 楼 fuwenhai 的回复:]

引用 8 楼 marqio 的回复:
你不是已经有了Java文件了,直接调用加密方法然后把要加密的字符串传进去,返回一个加密后的字符串。解密调用解密的方法就可以了,不知道你的文件里是否有这个方法。没有的话发你一个


谢谢,给我发一个吧
[/Quote]



import java.security.MessageDigest;

/**
* @author closewbq
* @version 1.0
* 对密码进行加密和验证
*/
public class MD5Util {

/**
* 16进制下的映射数组
*/
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

/**
* 将密码进行加密处理
* @param password
* @return 加密后的字符串
*/
public static String getPassByMD5(String password) {
return stringByMD5(password);
}

/**
* 验证登录密码是否正确
* @param password 加密后的密码
* @param loginPassword 登录的密码
* @return 验证结果,TRUE:正确 FALSE:错误
*/
public static boolean validatePassword(String password, String loginPassword) {
if (password.equals(stringByMD5(loginPassword))) {
return true;
} else {
return false;
}
}

/**
* 对字符串进行加密处理
* @param strString
* @return 加密后的字符串
*/
private static String stringByMD5(String strString) {
if (strString != null) {
try {
//创建MD5算法的信息摘要
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] results = md.digest(strString.getBytes());

//将得到的字节数组变成字符串返回
String resultString = byteArrayToHexString(results);
return resultString.toUpperCase();
} catch (Exception ex) {
ex.printStackTrace();
}
}
return null;
}

/**
* 转换字节数组为十六进制字符串
* @param 字节数组
* @return 十六进制字符串
*/
private static String byteArrayToHexString(byte[] results) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < results.length; i++) {
resultSb.append(byteToHexString(results[i]));
}
return resultSb.toString();
}

/**
* 将一个字节转化成十六进制形式的字符串
* @param b
* @return 十六进制形式的字符
*/
private 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];
}

}

回复
sun0322 2010-10-07
请看这里。



http://www.baidu.com/
回复
jnhcd 2010-10-07
这个随便百度搜一下都有的吧。呵呵
回复
风影萧诺 2010-10-07
按照方法试一个不就是了么
回复
luyun2011 2010-10-07
[Quote=引用 8 楼 marqio 的回复:]
你不是已经有了Java文件了,直接调用加密方法然后把要加密的字符串传进去,返回一个加密后的字符串。解密调用解密的方法就可以了,不知道你的文件里是否有这个方法。没有的话发你一个
[/Quote]

谢谢,给我发一个吧
回复
marqio 2010-10-02
你不是已经有了Java文件了,直接调用加密方法然后把要加密的字符串传进去,返回一个加密后的字符串。解密调用解密的方法就可以了,不知道你的文件里是否有这个方法。没有的话发你一个
回复
hash 算法不是理论上不可逆,而是事实上不可逆的。

MD5 等消息摘要算法可以验证数据的有效性,数字签名就是基于消息摘要算法的。

比如看到很多下载链接边上有个 MD5 值,这个值就是这个下载软件的 MD5 摘要值,下载回来后用 MD5 工具计算一下如果与那个值相同,那说明在下载过程中没有被黑客篡改过,如果改过的话,那计算出来的值与页面上的那个值肯定是不同的,哪怕只是将其中的一个 bit 由 0 变为 1 所计算出来的 MD5 会完全不一样。
回复
http://blog.3gcomet.com/article.asp?id=63http://zhidao.baidu.com/question/15978204
这些好多都是介绍原理的,自己看看后,慢慢理解
回复
wuchangwei1125 2010-09-30
MD5,sha1等都是hash运算,理论上目前是不可逆的,所以在网上传输,即使你截获了,也推不出来原密码
回复
dr_lou 2010-09-30
密码丢失 就让他重置。

网络传输的都是密文,数据库存储的也可以用密文。
回复
apchy 2010-09-30
密码用MD5算法加密,hash计算而已,速度快,又可以起到加密作用,加密有很多算法的,对称加密(DES)与非对称加密(RSA)
回复
liubo_0329 2010-09-30
http://blog.3gcomet.com/article.asp?id=63
这个网站部错。。看看吧
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-09-30 12:28
社区公告
暂无公告