Java爱好者 - 专注于Java技术Java爱好者 - 专注于Java技术

Java中的加解密之MD5加点盐(保护客户密码)

大多情况下我们加密的密码都是md5+Base64方式存储密码,这种存储方式 简单方便而且由于MD5算法的几乎不可还原性,但是假如网站的数据库遭到泄漏,得到了一串加密后的密码

比如

"123456"通过MD5+Base64编码后,永远是"4QrcOUm6Wau+VuBX8g+IPg=="

攻击者就可以用一个SQL命令:

select * from users where password='4QrcOUm6Wau+VuBX8g+IPg=='

这样就可以查出多少个人在用这个密码。

但是还有种情况就是用猜的方法就可以知道你的密码到底是什么,其他密码通过MD5+Base64编码加密也是一成不变的,总有简单的密码会给猜出。

为了防止这种情况我们可以选择密码+盐(这里盐的意思是随机生成固定长度的字符串)然后在加密,这样获得的字符串就永远不一样了!

所以要学会这种方式。

一种方式是随即数,但是我更喜欢用UUID,听说永远不会相同。

 

实际操作

UUID uuid = UUID.randomUUID();
String user_activation=uuid.toString();
String uuidPass=user_activation+password;

 在把uuidpass通过MD5+Base64编码加密存入数据库, 当然 uuid必须要保存到数据库不然你无法验证密码。
 这里只是写了简单的过程参考,不要直接复制。

这样就是加盐的方式,你也可以使用随机数的方式。

其他方式不说了,大同小异。

 

这样数据库万一泄露你也别担心那串密码会不会给破解了。

因为就算一样的密码那串加密的密码都是不一样的。

很多大公司还明文存入,九成网民的密码早就给泄漏了~

 

总结一句  也许很多伙伴到现在还不明白我说的,用户在互联网的密码几乎都是一样的,一个被破解了那所有平台的密码几乎都破解了。

本原创文章未经允许不得转载 | 当前页面:Java爱好者 - 专注于Java技术 » Java中的加解密之MD5加点盐(保护客户密码)

评论

文章评论已关闭!