【问题标题】:Generating 128-bit keys with keytool使用 keytool 生成 128 位密钥
【发布时间】:2009-05-19 08:56:01
【问题描述】:

有没有办法使用 Sun 的 keytool 程序生成适合加密的 128 位密钥对?似乎http://java.sun.com/javase/6/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator 中可用的算法要么不受支持,要么不允许短于 512 位的密钥。

密钥对将与 ff 一起使用。代码sn-p:

Security.addProvider(new BouncyCastleProvider());

KeyStore keyStore = KeyStore.getInstance("PKCS12");

FileInputStream keyStoreSource = new FileInputStream("keystore");

try {
    keyStore.load(keyStoreSource, "password".toCharArray());
} finally {
    keyStoreSource.close();
}

String alias = (String) keyStore.aliases().nextElement();
PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, "password".toCharArray());
X509Certificate certificate = (X509Certificate) keyStore.getCertificate(alias);

CMSEnvelopedDataStreamGenerator generator = new CMSEnvelopedDataStreamGenerator();

generator.addKeyTransRecipient(certificate);

OutputStream output2 = generator.open(output, CMSEnvelopedDataGenerator.AES128_CBC, BouncyCastleProvider.PROVIDER_NAME);

try {
    IOUtils.copy(input, output2);
} finally {
    output2.close();
    output.close();
}

其中输出是一些将保存加密数据的OutputStream,输入是一些将读取明文数据的InputStream。

【问题讨论】:

    标签: java security cryptography bouncycastle keytool


    【解决方案1】:

    您只需要指定不同的商店类型

    keytool -genseckey -alias check2 -keyalg AES -keysize 128 -storepass changeit -storetype JCEKS -keystore ks.jck

    【讨论】:

      【解决方案2】:

      证书用于公钥加密,不包含对称分组密码 AES-128 的加密密钥。相反,公钥加密仅用于加密或协商 128 位 AES 密钥,其余对话使用 AES。

      128 位 AES 密钥不是证书,它只是来自加密性强的随机数生成器的 128 位,或者使用诸如 PBKDF2 之类的散列算法从密码短语派生而来。如何获得这些位将取决于您的应用程序。 SSL/TLS 必须协商一个随机密钥,但硬盘加密程序会从密码中派生密钥。

      【讨论】:

      • 使用代码 sn-p 更新问题,其中将使用生成的密钥对。希望我已经消除了任何困惑。但是,是的,我是加密初学者。 :P
      【解决方案3】:

      无法生成小于 512 位的密钥对是有道理的。公钥加密需要比对称密钥加密更长的密钥来维持相同级别的安全性。不建议将 128 位密钥对用于公钥加密。

      【讨论】:

      • 我希望生成一个用于 AES-128 的测试证书。那我是不是走错路了?
      • 您能更详细地解释一下您希望完成的工作吗?
      • 使用代码 sn-p 更新问题,其中将使用生成的密钥对。
      猜你喜欢
      • 2014-02-13
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多