我有java应用程序,我需要将密码保存到加密文件中。我得到了使用Windows API的建议。我发现JDPAPI MS DPAPI周围的JNI包装器是什么。看起来不错。但我想知道是否存在使用Windows API将数据安全存储到文件中的其他库或方法?或者在不使用Windows API的情况下,是否存在一些用于Java安全存储的方法?我从不使用安全存储。你能谈谈Java中使用和不使用Windows API安全存储数据的最佳实践吗?
答案 0 :(得分:2)
首先:使用Windows API有点无意义。即使你无法想象,你也可能需要迁移。
第二:只有在应用程序运行时输入加密密钥时才存储加密密码才有意义。如果将它存储在配置文件中,则没有任何意义。
加密密钥可以在输入后存储为线程局部变量。
我建议使用属性文件,并使用充气城堡加密和解密服务层中的值。这样,您可以在同一文件中混合加密和未加密的值。
你当然可以使用Spring并使用Spring安全加密技术轻松完成必要的工作。
如果我们正在讨论使用hibernate的Web应用程序,我建议使用存储在数据库中的属性并使用jasypt进行透明加密。