elkers
10 天以前 3a1efe863c0cf30683870c204fb9b55ff6c35500
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package com.nanjing.water.common.util;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
 
public class EncryptionUtil {
    public static String encryptString(String input) {
        try {
            // 将传入的字符串转换为字节数组
            byte[] inputBytes = input.getBytes(StandardCharsets.UTF_8);
 
            // 使用SHA-256进行加密
            MessageDigest digest = MessageDigest.getInstance("SHA-256");
            byte[] hashBytes = digest.digest(inputBytes);
 
            // 转换为十六进制字符串
            StringBuilder sb = new StringBuilder();
            for (byte b : hashBytes) {
                sb.append(String.format("%02x", b));
            }
            String hashedString = sb.toString();
 
            // 按照指定规则截取和重新组合字符串
            StringBuilder result = new StringBuilder();
            for (int i = 0; i < 4; i++) {
                String subString = hashedString.substring(i * 16, (i + 1) * 16);
                for (int j = 0; j < 4; j++) {
                    result.append(subString.charAt(j * 4 + j));
                }
            }
            return result.toString();
 
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        }
    }
 
//    public static void main(String[] args) {
//        String input = "#beiaisi#_000001"; // 传入的字符串
//
//        // 调用加密方法
//        String encryptedString = encryptString(input);
//        System.out.println(encryptedString);
//    }
}