cbl*_*ard 5 java key-management
我正在编写一个关于我的应用程序密钥更新的程序.每隔一年左右,系统管理员将执行此程序.
在我的应用程序中,有一个对称密钥用于在将某些数据存储到数据库之前对其进行加密.此密钥存储在Java密钥库中.
当应用程序必须以加密方式在数据库中存储某些数据时,从配置文件中读取要使用的密钥别名,使用此密钥别名从Java密钥库读取密钥,使用密钥对数据进行加密并存储数据库中的所有内容:密钥别名,初始化向量和加密数据,全部用分号分隔.
所以使用另一个密钥的过程很简单:
但我不知道任何可以在Java密钥库中创建对称密钥的命令行工具.java keytool实用程序只能创建密钥对.
是否有命令行工具在Java密钥库中生成对称密钥,还是应该开发自己的工具?
cbl*_*ard 10
密钥工具是能够产生自Java 6中的密钥与-genseckey命令.以下是Java 6 keytool文档的摘录:
Run Code Online (Sandbox Code Playgroud)-genseckey {-alias alias} {-keyalg keyalg} {-keysize keysize} [-keypass keypass] {-storetype storetype} {-keystore keystore} [-storepass storepass] {-providerClass provider_class_name {-providerArg provider_arg}} {-v} {-protected} {-Jjavaoption}生成密钥并将其存储在
KeyStore.SecretKeyEntry由别名标识的新密钥中.keyalg指定用于生成密钥的算法,keysize指定要生成的密钥的大小.keypass是用于保护密钥的密码.如果未提供密码,则会提示用户输入密码.如果在提示符下按RETURN,则密钥密码将设置为与密钥库使用的密码相同的密码.keypass必须至少6个字符.
因此,以下命令将生成新的AES 128位密钥
keytool -genseckey -alias mykey -keyalg AES -keysize 128 \
-storetype jceks -keystore mykeystore.jks
Run Code Online (Sandbox Code Playgroud)
该keytool命令有一个拼写错误,隐藏有关以下内容的帮助信息-genseckey:
% keytool -help
[...]
-genkeypair [-v] [-protected]
[-alias <alias>]
[-keyalg <keyalg>] [-keysize <taille_clé>]
[-sigalg <sigalg>] [-dname <nomd>]
[-validity <joursVal>] [-keypass <mot_passe_clé>]
[-keystore <keystore>] [-storepass <mot_passe_store>]
[-storetype <storetype>] [-providername <name>]
[-providerclass <provider_class_name> [-providerarg <arg>]] ...
[-providerpath <pathlist>]
-genkeypair [-v] [-protected]
[-alias <alias>] [-keypass <keypass>]
[-keyalg <keyalg>] [-keysize <taille_clé>]
[-keystore <keystore>] [-storepass <mot_passe_store>]
[-storetype <storetype>] [-providername <name>]
[-providerclass <provider_class_name> [-providerarg <arg>]] ...
[-providerpath <pathlist>]
Run Code Online (Sandbox Code Playgroud)
该-genkeypair命令出现两次.实际上-genkeypair应该阅读第二个-genseckey.这就是我没注意到命令的原因.
我在Java 1.6.0_26中遇到过这个错字错误.我已经检查了最新的Java 6(1.6.0_31)并且它有同样的问题.我还检查了最新的Java 7并修复了文档问题:
% java -version
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) Server VM (build 22.1-b02, mixed mode)
% keytool -help
[...]
-genkeypair Generates a key pair
-genseckey Generates a secret key
[...]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11346 次 |
| 最近记录: |