xuekang
2024-05-11 bac0878349a1db23e7b420ea164e22fb9db73a99
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
47
48
49
50
51
52
53
54
55
package com.nuvole.util;
 
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
 
/**
 * @author ChenLong
 * @version 1.0
 * @ClassName CryptoUtil
 * @date 2019/5/6 11:47
 * @Description 加密,解密工具类
 */
public class CryptoUtil {
    // 系统内部使用
    private static final String PUBK = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCTREknOkrusbeH7kBe3mSw4AwVT438IWmX/jKmcvYxaAWRrBJiMl7gk37L78HBG/ZstLLcdKBYYdj/5cvVWDQfv+uxbv/piZhOmQej98jWIXEA8aFEk724nFRJ7nfcEhHSWfzbTfgZw0KDO1mWdjWHnHIx/MtD0HIFFIyzg3aO7wIDAQAB";
    private static final String PRIK = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJNESSc6Su6xt4fuQF7eZLDgDBVPjfwhaZf+MqZy9jFoBZGsEmIyXuCTfsvvwcEb9my0stx0oFhh2P/ly9VYNB+/67Fu/+mJmE6ZB6P3yNYhcQDxoUSTvbicVEnud9wSEdJZ/NtN+BnDQoM7WZZ2NYeccjH8y0PQcgUUjLODdo7vAgMBAAECgYBVu5Y+0Q/Yf/uRleFBmYTS98vxCBxnoOgBRUolXp32y1EaqisVoa9cXGGfxhdtHaNLS7Mo5niGm4giCZytuii1RO8kVXDAgMM2KRVIkOj2yTKJPRxgh9u0ja18MrpkCGnWYBYiU6irq+Ugu9+srkQSefPFX47U2QbLtxV5XF4iuQJBAMgh3FvAwV99tqGe+z+JtySRdtqEfK0M3Z4vpyqSH6miT1CbEqT942rPHbIUUqLwf6VMjxTYACwcLpVy/k3xrg0CQQC8YHkLxzE52o/wg817Rwwh0LpXz6dghQK7g6eMQyUi4C2PiOmqxpCFk2DOR0R4Rcw6SKxB4XQgyqM2zrdBsa3rAkEAtQcz/WbpQ8hCOAXHvNyEZjaSbOzkneACY0E1k+Njcp0X45CyF750RLweX2PUsACdZddPoYoU9dF0Lck70SNozQJBAIPBPiicw7NhSTfCGCBXSwcDxLHSTZFWttiMds3F0N2ZyoQQEM8fXsnukND2S8+LkhJZ7hGOLPkaghm9b7OFIM0CQEDvsXNcmF2+SWfFJDR57tblAIsOSLGeODWnlzaaFUFDHlbrCkexLJ+o1+C4xHMzUMHHMjHDJVpKt2EJdkfh4xU=";
    // 第三方 人才接口
    private static final String RCMPUBK = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqmYlQIg1eA6bavzgUx6CjlPcJpoTmqY/lBph8VRYH2G0ez/7Yl/Ooc5J9/1nhJ7Ql4u7TRjYZrgw8z3Ul1/kQtel4GQdGOEadb1mmzHRlp5xeqiwj5/fJV+8CbqMNj+mobIJVbdV/oRpxTQMck3NRH1X52LsVFBixp079eGoSawIDAQAB";
    private static final String RCMPRIK = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKqZiVAiDV4Dptq/OBTHoKOU9wmmhOapj+UGmHxVFgfYbR7P/tiX86hzkn3/WeEntCXi7tNGNhmuDDzPdSXX+RC16XgZB0Y4Rp1vWabMdGWnnF6qLCPn98lX7wJuow2P6ahsglVt1X+hGnFNAxyTc1EfVfnYuxUUGLGnTv14ahJrAgMBAAECgYEAo/7kWPvjDbVE+JNJPfCJI7dXoxdIOtRVVzx36U2B2BjdDPm1alDoEc7HzAdkR2T7cFAudTrRVu5RJUPowXBUI4H/m19JrJiYKqlmhUUrlf+TxFajkUPC1fUSGKzj+Oh/H76/unZbOmhp+TMkopyeI0tU7xmXHuEZk9i2Zq1z+oECQQDbDPa9PpOFLdc0iONfMlYSh4wXUVfhiH2gQ6G10Mf3K6KN6ESnwULWuhrE/N7Zw6zuZBdEqveanJ6NVcaIR8Y5AkEAx2BeQSO0WSkUgKNB9xaVutDddDuKferRpomcecUEf2LN/z3u4DE7P3O9Gwi4iQTHrxMhfLq/VKa8yJjUv5a9wwJAYTk/yn8buuC9w/N996K/0TmYVEEmYFPUbm2WOLySBIK5g4Kz9kExCV1QxF34C29uMeD68t9vRpB9Tv3jQFmbAQJAKu2t/bqRV21H89azGl+rh5j3RdKYJDqOP5x7q6BnMoJ0tlOAfpc7GZNzEUIUcbQsxp6I5FFVZwWrukll7YaofwJBALRdRoP+FOkJv+MMP8Dytxe8c3Cy1OIEkRglPDydmwDoAp+sObm80vKgmfR/llsK2Z1DppvDRkpVHwWtHwZfqZQ=";
 
    public static String rsaEncode(String s, Short flag) {
        RSA rsa = null;
        if (flag == null || flag == 1) {
            rsa = SecureUtil.rsa(PRIK, PUBK);
        } else if (flag != null && flag == 2) {
            rsa = SecureUtil.rsa(RCMPRIK, RCMPUBK);
        }
        return Base64.encode(
                rsa.encrypt(StrUtil.bytes(s, CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey));
    }
 
    public static String rsaDecode(String s, Short flag) {
        RSA rsa = null;
        if (flag == null || flag == 1) {
            rsa = SecureUtil.rsa(PRIK, PUBK);
        } else if (flag != null && flag == 2) {
            rsa = SecureUtil.rsa(RCMPRIK, RCMPUBK);
        }
        return new String(rsa.decrypt(Base64.decode(s), KeyType.PrivateKey));
    }
 
    public static void main(String[] args) {
        String str = "zhangsan";
        System.out.println(rsaEncode(str, (short) 2));
 
        str = "JyfPzIktNeH4VWkGIUzMpaJiOcCvlZQkE5q1tKnxH0xK/FNAcPgrLJYBscp6oHDCd7+FTkjkOicQepkE7UiceEY0zqvQrutVE1kjy4TNH0V4NIAoCk7y5qzo19m/247vh+GbZEW/C4qTRbtrFNoolO4hfMxuH7kqNB5VS8OdIRQ=";
        System.out.println(rsaDecode(str, (short) 2));
    }
 
 
}