keystoreは対称鍵を格納する
3291 ワード
keystoreは鍵リポジトリであり、非対称鍵を格納するためによく使用されますが、対称鍵を格納するために必要な場合もあります.
public void createKeyStore() {
try {
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");
keyGen.init(56, random);
SecretKey secretKey = keyGen.generateKey();
KeyStore ks = KeyStore.getInstance("jceks");
char password[] = {'c', 'h', 'a', 'n', 'g', 'e','i','t' };
// Create an empty keystore
ks.load(null, password);
KeyStore.SecretKeyEntry skEntry = new KeyStore.SecretKeyEntry(secretKey);
ks.setEntry("myKey", skEntry, new KeyStore.PasswordProtection(password));
// store away the keystore
java.io.FileOutputStream fos =
new java.io.FileOutputStream("mystore");
ks.store(fos, password);
fos.close();
} catch (NoSuchAlgorithmException nsaex) {
nsaex.printStackTrace(System.err);
} catch (NoSuchProviderException nspex) {
nspex.printStackTrace(System.err);
} catch (KeyStoreException ksex) {
ksex.printStackTrace(System.err);
} catch (CertificateException cex) {
cex.printStackTrace(System.err);
} catch (IOException ioex) {
ioex.printStackTrace(System.err);
}
}
DES 。
keystore , jceks,
jks, 。