是否有命令行工具可以在 Java 密钥库中生成对称密钥?
我正在为我的应用程序编写一个有关密钥更新的程序。此过程将由系统管理员每年左右执行一次。
在我的应用程序中,有一个对称密钥用于在将某些数据存储到数据库之前对其进行加密。该密钥存储在 Java 密钥库中。
当应用程序必须以加密方式在数据库中存储某些数据时,要使用的密钥别名是从配置文件中读取的,密钥是使用此密钥别名从 Java 密钥库中读取的,数据使用密钥进行加密并存储数据库中的所有内容:密钥别名、初始化向量和加密数据,全部用分号分隔。
因此,使用另一个密钥的过程很简单:使用
- 另一个别名在 Java 密钥库中生成一个新的对称密钥,
- 更改配置文件以使用这个新的密钥别名
,但我不知道有任何命令行工具可以在Java 密钥库。 java keytool
实用程序只能创建密钥对。
是否有命令行工具可以在 Java 密钥库中生成对称密钥,或者我应该开发自己的工具?
I am writing a procedure about key renewing for my application. This procedure will be executed by a sysadmin every year or so.
In my application, there is a symmetric key used to cipher some data before storing it in the database. This key is stored in a Java keystore.
When the application must store some data in the database in a ciphered way, the key alias to use is read from a configuration file, the key is read from the Java keystore with this key alias, the data is ciphered with the key and I store everything in the database: the key alias, the Initialization Vector and the ciphered data, all separated with semi-colons.
So the procedure to use another key is straightforward:
- generate a new symmetric key in the Java Keystore with another alias
- change the configuration file to use this new key alias
But I do not know any command-line tool that can create a symmetric key in a Java keystore. The java keytool
utility can only create key pairs.
Is there a command line tool to generate symmetric keys in a Java keystore or should I develop my own tool?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
自 Java 6 起,keytool 就能够使用 -genseckey 命令。以下是 Java 6 keytool 文档的摘录:
因此,以下命令将生成新的 AES 128 位密钥
keytool
命令有一个拼写错误,隐藏了有关-genseckey
的帮助信息:-genkeypair 命令出现两次。事实上,第二个
-genkeypair
应该读取为-genseckey
。这就是为什么我没有注意到这个命令。我在 Java 1.6.0_26 中遇到了这个拼写错误。我检查了最新的 Java 6 (1.6.0_31),它也有同样的问题。我还检查了最新的 Java 7,文档问题已修复:
keytool is able to generate a secret key since Java 6 with the -genseckey command. Here is an excerpt of the Java 6 keytool documentation:
So the following command will generate a new AES 128 bits key
The
keytool
command has a typo bug that hides the help information about-genseckey
:The
-genkeypair
command appears twice. In fact the second-genkeypair
should be read-genseckey
. That's why I did not notice the command.I have encountered this typo bug with Java 1.6.0_26. I have checkd with the latest Java 6 available (1.6.0_31) and it has the same problem. I have also checked with the latest Java 7 and the documentation problem is fixed: