栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JSP简单密码加密解密

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSP简单密码加密解密

请不要实施您当前的计划,而应该使用MessageDigest来完成此任务。对用户密码(例如SHA-256,SHA-384和SHA-512
[还有其他]中的一种)应用单向加密哈希函数和SALT,以防止基于彩虹表的攻击。最后,对于密码重置,只需替换当前的密码哈希即可。

举个例子,

// We need a bytesToHex method first. So, from -// http://stackoverflow.com/a/9855338/2970947final protected static char[] hexArray = "0123456789ABCDEF"    .toCharArray();public static String bytesToHex(byte[] bytes) {  char[] hexChars = new char[bytes.length * 2];  int v;  for (int j = 0; j < bytes.length; j++) {    v = bytes[j] & 0xFF;    hexChars[j * 2] = hexArray[v >>> 4];    hexChars[j * 2 + 1] = hexArray[v & 0x0F];  }  return new String(hexChars);}// Change this to something else.private static String SALT = "123456";// A password hashing method.public static String hashPassword(String in) {  try {    MessageDigest md = MessageDigest        .getInstance("SHA-256");    md.update(SALT.getBytes());        // <-- Prepend SALT.    md.update(in.getBytes());    // md.update(SALT.getBytes());     // <-- Or, append SALT.    byte[] out = md.digest();    return bytesToHex(out); // <-- Return the Hex Hash.  } catch (NoSuchAlgorithmException e) {    e.printStackTrace();  }  return "";}public static void main(String[] args) {  System.out.println(hashPassword("Hello"));  System.out.println(hashPassword("Hello"));  System.out.println(hashPassword("Hello1"));  System.out.println(hashPassword("Hello2"));}

哪个应该输出

60C1E22D18D022F01EEF0CAF999E52FD44C0C8EFD2161E9F4D24120AB0AFC84D60C1E22D18D022F01EEF0CAF999E52FD44C0C8EFD2161E9F4D24120AB0AFC84DCAAC2288692DD57BADFAE0225A42E59E1979E0116D009EEF01912E8C75529515E0A3963BFAF209A17422918CB1FC950A62858993CA9A7BA6F760B8D4688306FD

演示一个字符产生的哈希值有多大差异。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/615951.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号