我想创建一个用于AES加密的密钥。我找到了一种使用Java的keytool来做到这一点的方法。诀窍是指定密钥库的类型是JCEKS,而不是默认的JCE。
因此该命令将创建密钥:
keytool -genseckey -alias aestest -keyalg AES -keysize 192 -storetype JCEKS
我的问题是:
如何从密钥库中获取生成的密钥,并将其放入文件中,以便我可以使用它??
是否有AES密钥必须具有的特殊属性,或者我可以选择任意192位作为我的AES密钥,从而避免需要使用keytool?
由于 彼得
答案 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才能工作。即便如此,它也不是一个很好的做法,因为你在更新你的应用程序时需要相同的密钥。