祖传代码-JAVA做md5
这篇文章是shitMountain这个tag的开端,如你所见,祖传代码的tag是屎山。这是为了警示我不要把自己写的贼烂的代码到处paste,只是做一个收集整理,不要学了就忘掉。
代码部分
1 | import java.math.BigInteger; |
解释
代码说明
这里用的包主要就是java.security中的messageDigest,从中获取一个MD5的实例。最后得到一个md5的biginteger。
用处
这个代码常常用在希望对用户的密码做一个单向加密的情况。
显然,在数据库或者任何地方保存用户的明文密码是不合适的,更进一步,如果没有用https,直接传输密码也是不对的。
所以后端在保存密码的时候做一个md5的hash是最简单的解决方法。值得一提,这个方法并不能很好的解决数据泄露的问题,最简单的,相同的密码的最后hash还是相同的,所以彩虹表能很简单的获得使用简单密码的用户的密码明文。所以使用的时候加上一个盐还是挺好的,比如把用户的id或者用户名也一起拼接来做hash。