用户名和密码的MD5加密整理。 项目中遇到了要求加密,从网上找了些文章,整理了一下,备用。 js加密(转) http://download1.csdn.net/down3/20070604/04115829609.rar java: import java.security.MessageDigest; public class MD5Test { public final static String md5(String s) { String strOutput = new String(""); try { byte[] strtemp = s.getBytes(); MessageDigest mdtemp = MessageDigest.getInstance("MD5"); mdtemp.update(strtemp); byte[] md = mdtemp.digest(); int length = md.length; for (int i = 0; i < length; i++) { //大小写得到的结果要用equalsIngnoreCase比较为true. // char[] digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', // '9', 'a', 'b', 'c', 'd', 'e', 'f' }; char[] digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; char[] ob = new char[2]; ob[0] = digit[(md[i] >>> 4) & 0X0F]; ob[1] = digit[md[i] & 0X0F]; strOutput += new String(ob); } return strOutput; } catch (Exception e) { return null; } } public static void main(String[] args) { System.out.print(MD5Test.md5("a")); } } /* * 检验你的实现是否正确: * MD5 ("") = d41d8cd98f00b204e9800998ecf8427e * MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661 * MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72 * MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0 * MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b */ 用户登陆时,先在服务器端产生一段随机字母或数字,发送到客户端,与密码拼接在一起后使用js的MD5加密,将得到的摘要发送到服务器,服务器从数据库中取得该用户对应的密码,并将刚才发送的随机字母和数字与密码拼接,之后使用java的MD5加密,将得到的摘要和请求中的密码摘要比较是否相同. 随机数字或字母的作用,确保每次生成的摘要都不相同,蓄意破坏者无法使用截取的摘要进行登陆.摘要+sessionId MD5加密生成摘要,不可逆,同一段代码使用MD5加密得到摘要相同.
MD5加密整理
最新推荐文章于 2024-08-06 17:27:21 发布