如果我遵循您的问题,那么您可以使用类似的方法-
String sql = "select md5(CONCAt(md5(?), ?))";PreparedStatement ps = null;ResultSet rs = null;try { ps = conn.prepareStatement(sql); ps.setString(1, password); ps.setString(2, pwdSalt); rs = ps.executeQuery();} catch (SQLException e) { e.printStackTrace();}另一种可能的解决方案是在Java中执行哈希和盐运算-
// A password hashing method.public static String hashPassword(String in, String salt) { try { MessageDigest md = MessageDigest.getInstance("MD5"); // <-- Or, 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 "";}private static String bytesToHex(byte[] byteArr) { StringBuilder sb = new StringBuilder(); Formatter fmt = new Formatter(sb); for (byte b : byteArr) { fmt.format("%02x", b); } return sb.toString();}最后,我不会在2014年使用MD5。我更喜欢SHA-256。



