MD5加密
Posted 月魄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MD5加密相关的知识,希望对你有一定的参考价值。
MD5加密方法
MD5是一个安全的散列算法,输入两个不同的明文不会得到相同的输出值,根据输出值,不能得到原始的明文,即其过程不可逆;所以要解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD5算法散列之后,把得到的散列值和原始的数据形成一个一对一的映射表,通过比在表中比破解密码的MD5算法散列值,通过匹配从映射表中找出破解密码所对应的原始明文。
对信息系统或者网站系统来说,MD5算法主要用在用户注册口令的加密,对于普通强度的口令加密,可以通过以下三种方式进行破解:
(1)在线查询密码。一些在线的MD5值查询网站提供MD5密码值的查询,输入MD5密码值后,如果在数据库中存在,那么可以很快获取其密码值。
(2)使用MD5破解工具。网络上有许多针对MD5破解的专用软件,通过设置字典来进行破解。
(3)通过社会工程学来获取或者重新设置用户的口令。
因此简单的MD5加密是没有办法达到绝对的安全的,因为普通的MD5加密有多种暴力破解方式,因此如果想要保证信息系统或者网站的安全,需要对MD5进行改造,增强其安全性,本文就是在MD5加密算法的基础上进行改进!
1 private String formatMD5String(String param){ 2 try { 3 MessageDigest digest = MessageDigest.getInstance("MD5"); 4 //加密 5 byte[] miwen = digest.digest(param.getBytes()); 6 StringBuilder builder = new StringBuilder(); 7 for(byte b:miwen) { 8 String hex = Integer.toHexString(b & 0xFF); 9 10 if (hex.length()==1){ 11 hex = 0+hex; 12 } 13 builder.append(hex); 14 System.out.println(hex); 15 } 16 return builder.toString(); 17 } catch (NoSuchAlgorithmException e) { 18 e.printStackTrace(); 19 } 20 return String.valueOf(param.hashCode()); 21 }
此处仅提供一个使用方法,供参考!
以上是关于MD5加密的主要内容,如果未能解决你的问题,请参考以下文章