我有 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/