想要为AES加密创建密钥

时间:2011-10-10 02:15:53

标签: android encryption aes

我想创建一个用于AES加密的密钥。我找到了一种使用Java的keytool来做到这一点的方法。诀窍是指定密钥库的类型是JCEKS,而不是默认的JCE。

因此该命令将创建密钥:

keytool -genseckey -alias aestest  -keyalg AES -keysize 192  -storetype JCEKS

我的问题是:

  1. 如何从密钥库中获取生成的密钥,并将其放入文件中,以便我可以使用它??

  2. 是否有AES密钥必须具有的特殊属性,或者我可以选择任意192位作为我的AES密钥,从而避免需要使用keytool?

  3. 由于 彼得

2 个答案:

答案 0 :(得分:2)

您可以选择任意键 - 任何随机数据都可以。通常,您可能需要实际密钥生成器的唯一情况是,当您生成密钥(公共和私有)时,在这种情况下,这两个密钥必须在数学上链接,但AES是对称密码,只有一个密钥,可以是任何东西。

答案 1 :(得分:-2)

你不需要从密钥库中获取生成的密钥。你可以通过提供密钥库密码来使用它。这是一个用于在keytool中生成密钥的UI。 http://www.fuin.org/keytool-iui/keytool-iui.jnlp。 运行以下命令 一个。 jarsigner -verbose -keystore keys.jks Unsigned.apk别名 湾zipalign -f -v 4 Signed.apk Zipped.apk

请参阅:http://developer.android.com/guide/publishing/app-signing.html

我不认为使用任何192位作为AES密钥,因此避免需要使用keytool才能工作。即便如此,它也不是一个很好的做法,因为你在更新你的应用程序时需要相同的密钥。