2011-10-10 158 views
0

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

所以这个命令会打造关键:

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

我的问题是:

  1. 如何在赫克我得到的是生成的密钥进行密钥库,并放到一个文件我可以使用它!?

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

感谢 彼得

回答

2

你可以选择任意的关键 - 任何随机的数据就行了。通常情况下,你可能需要一个实际的密钥生成器的唯一场景是当你生成密钥对(公钥和私钥),在这种情况下,这两个密钥必须进行数学链接,但AES是对称密码,只有一个密钥,可以是任何密钥。

-2

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

参见本:http://developer.android.com/guide/publishing/app-signing.html

我不使用任何192位的AES密钥思考,从而避免了需要使用密钥工具都将工作。即使是这样,它不是一个先例,因为你需要更新你的应用程序相同的密钥。

+1

谢谢你的想法。但是,我没有使用AES算法来建立身份(通过签署一个apk文件)。我想用它来加密。为此,我需要将其从密钥存储区中取出。 Sun的部分内容并没有很好地考虑到整个密钥库的问题。 –