PBE-SHA1-3DES使用168位三重DES?

时间:2014-09-17 17:29:23

标签: encryption openssl

我正在使用以下命令使用OpenSSL加密我的私钥文件:

$ openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key.pem -out private_key.der  -v1 PBE-SHA1-3DES

文档说明选项-v1 PBE-SHA1-3DES将使用三重DES加密,但没有提到它正在使用哪个键控选项。我可以假设它使用168位三重DES吗?

1 个答案:

答案 0 :(得分:1)

答案似乎是肯定的,当我从Java读取文件时(另请参阅我的其他question),我可以得到算法即:

1.2.840.113549.1.12.1.3 from algParams.getAlgorithm()

谷歌搜索产生:pbeWithSHAAnd3-KeyTripleDES-CBC

另请参阅:http://www.oid-info.com/get/1.2.840.113549.1.12.1.3

这是一个3键三重DES,需要168位。

public static byte[] decryptPrivateKey(byte[] key) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException {
    PBEKeySpec passKeySpec = new PBEKeySpec("p".toCharArray());

    EncryptedPrivateKeyInfo encryptedKey = new EncryptedPrivateKeyInfo(key);
    System.out.println(encryptedKey.getAlgName());
    System.out.println("key length: " + key.length);
    AlgorithmParameters algParams = encryptedKey.getAlgParameters();
    System.out.println(algParams.getAlgorithm());