13693261870
2022-09-20 a666b5f9741ef9b21f547d3b2141752a0383c70c
src/java/org/apereo/cas/web/landtool/utils/Md5Util.java
@@ -6,8 +6,16 @@
import org.apache.commons.codec.binary.Hex;
/**
 * MD5加盐加密
 *
 * @author
 */    
public class Md5Util {
    private static int m16 = 16;
    private static int m48 = 48;
    private static int m3 = 3;
    /**
     * 生成含有随机盐的密码
     */
@@ -16,15 +24,15 @@
        StringBuilder sb = new StringBuilder(16);
        sb.append(r.nextInt(99999999)).append(r.nextInt(99999999));
        int len = sb.length();
        if (len < 16) {
            for (int i = 0; i < 16 - len; i++) {
        if (len < m16) {
            for (int i = 0; i < m16 - len; i++) {
                sb.append("0");
            }
        }
        String salt = sb.toString();
        password = md5Hex(password + salt);
        char[] cs = new char[48];
        for (int i = 0; i < 48; i += 3) {
        for (int i = 0; i < m48; i += m3) {
            cs[i] = password.charAt(i / 3 * 2);
            char c = salt.charAt(i / 3);
            cs[i + 1] = c;
@@ -38,7 +46,7 @@
    public static boolean verify(String password, String md5) {
        char[] cs1 = new char[32];
        char[] cs2 = new char[16];
        for (int i = 0; i < 48; i += 3) {
        for (int i = 0; i < m48; i += m3) {
            cs1[i / 3 * 2] = md5.charAt(i);
            cs1[i / 3 * 2 + 1] = md5.charAt(i + 2);
            cs2[i / 3] = md5.charAt(i + 1);