我正在实施AWS S3 SSE-C(使用客户端密钥的服务器端加密),我拥有存储文件以及检索文件的所有必要代码。现在,最后一步是找出生成密钥并将其正确存储在应用程序中的最佳方法/实践。
以下是从AWS Documentation生成密钥的代码。
private static SecretKey generateSecretKey() {
KeyGenerator generator;
try {
generator = KeyGenerator.getInstance("AES");
generator.init(256, new SecureRandom());
return generator.generateKey();
} catch (Exception e) {
e.printStackTrace();
System.exit(-1);
return null;
}
}
据我所知,这是一个随机生成的密钥,只有在检索到SecretKey
后才会生效。如何在可能具有多个实例(微服务)的应用程序中分发密钥,可以存储为环境变量。