java - Java 中安全存储数据的最佳实践是什么?

标签 java security winapi

我有 java 应用程序,我需要将密码保存到加密文件中。我得到了使用 Windows API 的建议。我找到了 JDPAPI什么是 MS DPAPI 周围的 JNI 包装器。好像不错但我想知道是否存在其他库或方法来使用 Windows API 将数据安全存储到文件中?或者是否存在一些不使用 Windows API 的 Java 安全存储方法?我从不使用安全存储。您能否谈谈 Java 在使用和不使用 Windows API 的情况下安全存储数据的最佳实践?

最佳答案

首先:使用 Windows API 有点毫无意义。即使您无法想象,您也可能不得不迁移。

第二:仅当您在应用程序运行时输入加密 key 时,存储加密的密码才有意义。如果将其存储在配置文件中,则没有任何意义。

加密 key 输入后可以作为线程局部变量存储。

我建议使用属性文件并使用充气城堡加密和解密服务层中的值。这样您就可以在同一个文件中混合加密和未加密的值。

您当然可以使用 Spring 并使用 Spring security crypto 轻松完成必要的工作。

如果我们谈论的是使用 hibernate 的网络应用程序,我建议使用存储在数据库中的属性并使用 jasypt 进行透明加密。

关于java - Java 中安全存储数据的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24325871/

相关文章:

java - 在java中加载游戏的图像

linux - 如何保护 drupal 文件的权限?

c# - 使用serialport.open()时发生I/O异常错误

c - 如何为我的程序使用尽可能多的 RAM?

c++ - 如何更改线程的名称

java - JFrame 不添加来自单独类的图形

java - 如何用spring-boot初始化ActiveMQ的SystemUsage?

database - 银行系统NoSQL数据库

ios - 是否可以从公钥和私钥创建 SecIdentityRef?

java - 一旦我执行了一项功能,如何让控制台菜单重复,以便我可以在不关闭程序的情况下执行另一项功能?