使用带有javax.crypto的密钥库进行文件加密/解密

时间:2011-04-24 14:10:56

标签: java cryptography keystore

我被建议在这里查看:http://exampledepot.com/egs/javax.crypto/DesFile.html,了解使用import javax.crypto进行加密/解密的源代码。我通过keytool生成了我的密钥,现在我不知道如何将生成的密钥传递给该应用程序进行加密和解密。

我的情况是,我有一个在线存储的XML文件(它存储配置详细信息),在我用XML解析器解析它之前,我必须解密它。首先,我当然应该在它上线之前加密它。

问题是:如何将生成的密钥传递到第一行链接中可见的代码中?

由于

1 个答案:

答案 0 :(得分:5)

JavaDoc of the KeyStore class

中记录了如何加载KeyStore
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
// get user password and file input stream
char[] password = getPassword();
java.io.FileInputStream fis = new java.io.FileInputStream("C:/mykeystore.jks");
ks.load(fis, password);
fis.close();

加载密钥库后,您可以加载密钥:

Key myKey = ks.getKey("mykeyalias", password);

密钥别名是您使用keytool指定的密钥别名。 使用myKey您可以初始化Cipher个实例或使用例如CipherOutputStream / CipherInputStream