如何定义JCE提供程序的算法?

时间:2015-10-17 19:02:40

标签: java bouncycastle jce jasypt

我正在尝试使用jasypt使用基于密码的aes加密来加密一个简单的字符串,我遇到了许多代码示例,该算法以字符串形式给出,如“PBEWithSHA512AndAES256-CBC-BC”。我无法找到与如何理解此字符串相关的文档。我理解PBEWithSHA512AndAES256-CBC的部分,但这里的BC标志是什么意思?

到目前为止,我能找到的最好的资源是http://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyManagerFactory

但它仍然没有回答我的问题。我已经用谷歌搜索了2个小时。

1 个答案:

答案 0 :(得分:1)

我通过检查充气城堡的代码找到了答案

   /**
     * PBEWithSHA256And128BitAES-BC
     */
    static public class PBEWithSHA256And128BitAESBC
        extends PBESecretKeyFactory
    {
        public PBEWithSHA256And128BitAESBC()
        {
            super("PBEWithSHA256And128BitAES-CBC-BC", null, true, PKCS12, SHA256, 128, 128);
        }
    }

并且父类的定义是

   public More ...PBESecretKeyFactory(
23        String algorithm,
24        ASN1ObjectIdentifier oid,
25        boolean forCipher,
26        int scheme,
27        int digest,
28        int keySize,
29        int ivSize)

因此,它具有PKCS12方案,摘要SHA256,128位密钥大小和128位大小的初始化向量