安全地保留数据

时间:2011-09-12 13:27:46

标签: java linux security encryption datapersistance

我们有一个在linux上运行的java应用程序。 当应用程序崩溃并重新启动时 - 我们需要恢复(持久化)存储在先前运行中的非常敏感的信息(全局静态var)。 没有数据库允许(不安全)。 同样重要的是,没有人可以不可察觉地改变这些信息(例如覆盖文件等)。

提前致谢

2 个答案:

答案 0 :(得分:0)

我建议使用Jasypt。 你可以实施Externalizable&加密对象流

BasicPasswordEncryptor encryptor = new BasicPasswordEncryptor();
String cipher = encryptor.encryptPassword(<<stream to encrypt as string>>);
...
if (encryptor.checkPassword(inputPassword, encryptedPassword)) {
  // correct!
} else {
  // bad login!
}

答案 1 :(得分:0)

保护加密所需的数据。在CBC或CTR模式下使用AES-256和PKCS7填充。 将加密密钥存储在您的应用程序中。您可以存储IV / nonce,因为它不需要是安全的。

要确保不更改数据,请使用带有SHA-256的HMAC。您必须使用与用于AES的HMAC不同的密钥。