| | |
| | | import java.security.MessageDigest; |
| | | import java.util.Random; |
| | | |
| | | /** |
| | | * MD5帮助类 |
| | | * @author WWW |
| | | */ |
| | | @SuppressWarnings("ALL") |
| | | public class Md5Helper { |
| | | private final static int M3 = 3; |
| | | |
| | |
| | | |
| | | private final static int M48 = 48; |
| | | |
| | | /** |
| | | * 生成含有随机盐的密码 |
| | | * |
| | | * @param password |
| | | * @return |
| | | */ |
| | | public static String generate(String password) { |
| | | Random r = new Random(); |
| | | StringBuilder sb = new StringBuilder(16); |
| | |
| | | return new String(cs); |
| | | } |
| | | |
| | | /** |
| | | * 校验密码是否正确 |
| | | * |
| | | * @param password |
| | | * @param md5 |
| | | * @return |
| | | */ |
| | | public static boolean verify(String password, String md5) { |
| | | char[] cs1 = new char[32]; |
| | | char[] cs2 = new char[16]; |
| | |
| | | return md5Hex(password + salt).equals(new String(cs1)); |
| | | } |
| | | |
| | | /** |
| | | * 获取十六进制字符串形式的MD5摘要 |
| | | * |
| | | * @param src |
| | | * @return |
| | | */ |
| | | public static String md5Hex(String src) { |
| | | try { |
| | | MessageDigest md5 = MessageDigest.getInstance("MD5"); |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 反转 |
| | | * |
| | | * @param pass |
| | | * @return |
| | | */ |
| | | public static String reverse(String pass) { |
| | | StringBuilder sb = new StringBuilder(pass); |
| | | |
| | | return sb.reverse().toString(); |
| | | } |
| | | |
| | | /** |
| | | * 验证密码 |
| | | * |
| | | * @param originalPassword |
| | | * @param dbPassword |
| | | * @return |
| | | */ |
| | | public static boolean validatePassword(String originalPassword, String dbPassword) { |
| | | return verify(originalPassword, reverse(dbPassword)); |
| | | } |