-1

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

提前致谢

4

2 回答 2

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!
}
于 2011-09-12T13:33:11.103 回答
0

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

为确保数据不被更改,请使用HMAC和 SHA-256。您必须为 HMAC 使用与 AES 不同的密钥。

于 2011-09-12T14:05:47.390 回答