日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

支付寶小程序或H5方案密鑰加密說明

本文適用于持牌金融客戶KYC留存用戶認證憑證合規需求。當客戶通過支付寶隱私辦資質審核且功能配置完成后,可參考本文生成RSA公鑰加密后的AES密鑰,以便在查詢認證結果時獲取加密的相關圖片。

適用產品方案

加密流程

  1. 首先您需要使用AES算法對16位字符串(隨機生成)進行加密,然后對加密后的字符串進行Base64編碼。

  2. 參考以下代碼示例使用RSA公鑰對Base64編碼的AES密鑰進行加密,即可獲取到業務參數。

    獲取到加密后的參數后,在查詢實人認證結果時,可傳入encToken參數中,用于獲取加密的相關圖片。

    import com.alibaba.fastjson.JSON;
    import org.apache.commons.codec.binary.Base64;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import sun.misc.BASE64Decoder;
    
    import javax.crypto.Cipher;
    import java.security.KeyFactory;
    import java.security.PrivateKey;
    import java.security.PublicKey;
    import java.security.spec.PKCS8EncodedKeySpec;
    import java.security.spec.X509EncodedKeySpec;
    
    public class RSAUtils {
        private static final Logger LOGGER = LoggerFactory.getLogger(RSAUtils.class);
        private static final String CHARSET = "UTF-8";
        /**
         *非對稱加密密鑰算法
         */
        private static final String RSA = "RSA";
        /**
         *密填充方式
         */
        private static final String ECB_PKCS1_PADDING = "RSA/ECB/PKCS1Padding"; 
         /**
          *獲取加密圖片RSA公鑰
          */
        private static final String PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxav0oL0tJJf1KxiM1rDBChK/ANM7yWkA/sjhZwfZRjPpbGuMLN2HDtfyyYKtj5jg8AggarvofiVmC0omyWiiZUeZ+z9pjH+SxgFbrf6rHPNNkg7Q6S8WgBUOMK+nyus3u2U7YkxJgk/qtGNM72VP8x2TJgGavZfxH1rfFdf041qVGxSSZBgtU+ic5TX31XbIeKCd+BBy+AZiBTnqE19rbSfqNebHRAQzOfwUBiMbvmnQ4FagH6cqLPyH+NMQm5fWHPkCdgNgf8sp+5Du7kgmUkLljxz2Zqg3fQlYSrCjSrmQs2brIuoMTeC91wWNjxyS56vcLRAjMUZsIGqPNHlScwIDAQAB";
    
        public static String encrypt(String paramData) {
            try {
                byte[] paramDataBytes = paramData.getBytes(CHARSET);
                byte[] publicKeyDecode = Base64.decodeBase64(PUBLIC_KEY);
                byte[] rsaCryptoBytes = encryptByPublicKey(paramDataBytes, publicKeyDecode);
                return Base64.encodeBase64String(rsaCryptoBytes);
            } catch (Exception e) {
                LOGGER.info(JSON.toJSONString(e));
            }
            return null;
        }
    
        /**
         * 用公鑰對字符串進行加密
         * @param data 原文
         * @param publicKey 公鑰
         */
        private static byte[] encryptByPublicKey(byte[] data, byte[] publicKey) throws Exception {
            // 得到公鑰
            X509EncodedKeySpec keySpec = new X509EncodedKeySpec(publicKey);
            KeyFactory kf = KeyFactory.getInstance(RSA);
            PublicKey keyPublic = kf.generatePublic(keySpec);
            // 加密數據
            Cipher cp = Cipher.getInstance(ECB_PKCS1_PADDING);
            cp.init(Cipher.ENCRYPT_MODE, keyPublic);
            return cp.doFinal(data);
        }
    }