# 本地数字信封加解密

本地数字信封加解密:可调用SDK的DigitalEnvelopeUtils包实现本地数字信封拆解包。

# 一、本地数字封包本地数字拆包

  • 使用本地SDK DigitalEnvelopeUtils包中的envelopeSeal方法实现本地封包
  • 调用DigitalEnvelopeUtils包中的envelopeOpen方法可对加密内容实现本地拆包

示例

        String cert = "MIIB+jCCAZ+gAw......" 
            
        String privateKey ="MIGTAgEAMBMGBy......";

        String data = "123";
        //第一个参数填证书,第二个填加密数据字节码
        byte[] encEnvelope = DigitalEnvelopeUtils.envelopeSeal(cert, data.getBytes(StandardCharsets.UTF_8));
        System.out.println("数字信封内容:\n" + Base64.encodeBase64String(encEnvelope));
        //第一个参数填证书,第二个填私钥,第三个填解密数据
        byte[] original = DigitalEnvelopeUtils.envelopeOpen(cert, privateKey, encEnvelope);
        System.out.println("数字信封解密:\n" + new String(original, StandardCharsets.UTF_8));
        assert data.equals(new String(original, StandardCharsets.UTF_8));

# 二、本地数字封包远程数字拆包

  • 使用本地SDK DigitalEnvelopeUtils包中的envelopeSeal方法本地封包
  • 调用远程证书配合解密

示例

        // 本地加密  调用远程证书配合解密

        String data = "123";
        String cert = "MIICVDCCAfug......";

        // 本地数字信封加密
        //第一个参数填证书,第二个填加密数据字节码
        byte[] encEnvelope = DigitalEnvelopeUtils.envelopeSeal(cert, data.getBytes(StandardCharsets.UTF_8));
        System.out.println("数字信封内容:\n" + Base64.encodeBase64String(encEnvelope));

        // 提供的URL
        String url = "http://172.16.6.76:20501";

        // 您的appKey
        String appKey = "Z8p4KlbPFH";

        // 您的appSecret
        String appSecret = "XaWiFBABtB7mmfJmpgwWU2cKskZf6Y9u";

        // 原客户端
        PkiClient pkiClient = new PkiOkhttpClient(url, appKey, appSecret);

        //第一个参数填客户端,第二个填证书,第三个填解密数据
        byte[] original = DigitalEnvelopeUtils.envelopeOpen(pkiClient, cert, encEnvelope);
        System.out.println("数字信封解密:\n" + new String(original, StandardCharsets.UTF_8));
        assert data.equals(new String(original, StandardCharsets.UTF_8));
最后更新于: 6/17/2022, 4:05:00 PM