OpenSSL方式加密密钥材料

加密密钥材料
 
使用获取到的加密公钥对密钥材料进行加密操作。本示例中采用OpenSSL方式加密密钥材料。
 
由于加密公钥是进行BASE64编码后的字符串,因此在使用公钥进行加密前需要对其进行BASE64解码操作。
 
加密完成后,对加密后的密钥材料进行BASE64编码的字符串保存,然后与导入令牌一起,作为密钥材料参数进行密钥材料导入。
 
在加密密钥材料之前,您需要准备好待加密的密钥材料。密钥材料时256位的对称密钥。您也可以使用如下命令生成一个256位的对称密钥,并将其保存在名为KeyMaterial.bin的文件中。
openssl rand -out Plain KeyMaterial.bin 32

OpenSSL方式加密密钥材料操作步骤
 
1.    将加密公钥进行BASE64解码。
 
    openssl enc -d -base64 -A -in PublicKey_base64.txt -out PublicKey.bin
   
2.    根据不同的加密算法加密密钥材料。
 
     加密密钥材料使用的加密算法需要与获取导入密钥材料参数时所指定的加密算法保持一致。
 
RSAES_PKCS1_V1_5
    openssl rsautl -encrypt -in KeyMaterial.bin -pkcs -inkey PublicKey.bin -keyform DER -pubin -out EncryptedKeyMaterial.bin
 RSAES_OAEP_SHA_1
    openssl rsautl -encrypt -in KeyMaterial.bin -oaep -inkey PublicKey.bin -keyform DER -pubin -out EncryptedKeyMaterial.bin
RSAES_OAEP_SHA_256
    openssl pkeyutl -in KeyMaterial.bin -encrypt -inkey PublicKey.bin -keyform DER -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_mgf1_md:sha256 -out EncryptedKeyMaterial.bin -pubin

3.    将加密后的密钥材料进行base64编码,保存为文本文件。
 
    openssl enc -e -base64 -A -in EncryptedKeyMaterial.bin -out EncryptedKeyMaterial_base64.txt
     若用户需要使用openssl pkeyutl命令,OpenSSL需要是1.0.2及以上版本。