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

Way*_*int 1 java cryptography keystore

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

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

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

谢谢

Rob*_*ert 6

KeyStore类JavaDoc中记录了如何加载KeyStore:

import java.io.FileInputStream;
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
// get user password and file input stream
char[] password = getPassword();
try (FileInputStream fis = new FileInputStream("C:/mykeystore.jks")) {
    ks.load(fis, password);
}
Run Code Online (Sandbox Code Playgroud)

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

Key myKey = ks.getKey("mykeyalias", password);
Run Code Online (Sandbox Code Playgroud)

关键别名是您使用keytool指定的别名.使用myKey您可以初始化Cipher实例或使用例如CipherOutputStream/CipherInputStream