use*_*647 0 java security encryption cryptography password-protection
我正在使用密钥库来保护文件中的私钥(使用该文件的密码).我不明白这段代码
// save my secret key
javax.crypto.SecretKey mySecretKey;
KeyStore.SecretKeyEntry skEntry =
new KeyStore.SecretKeyEntry(mySecretKey);
ks.setEntry("secretKeyAlias", skEntry,
new KeyStore.PasswordProtection(password));
// store away the keystore
java.io.FileOutputStream fos = null;
try {
fos = new java.io.FileOutputStream("newKeyStoreName");
ks.store(fos, password);
} finally {
if (fos != null) {
fos.close();
}
}
Run Code Online (Sandbox Code Playgroud)
什么是setEntry在做什么?我们是通过fileoutputstream保存私钥吗?如果是真的那么文件的密码在哪里??? 这个文件的扩展名是什么?是.jks?
Java密钥库是加密对象的容器.它可以包含对称密钥,私钥和证书.该setEntry()方法将另一个条目添加到密钥库.在您的情况下,它会添加一个由"secretKeyAlias"标识的对称密钥,并通过密码保护密钥库.如果要保存私钥,则应该创建一个私钥KeyStore.PrivateKeyEntry.
在内存中创建密钥库后,可以将其存储在磁盘上.密钥库有一个store()-method,它将密钥库写入a Stream.在这种情况下FileOutputStream.甲MAC也被添加到密钥库,由密码保护.在您的情况下,密码与上面使用的密码相同,但这不是必需的.
Java密钥库的通常扩展名是.jks,但您的代码只是将其存储在名为"newKeyStoreName"的文件中.
| 归档时间: |
|
| 查看次数: |
10702 次 |
| 最近记录: |