# 本地数字信封加解密
本地数字信封加解密:可调用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));