Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中安全存储数据的最佳实践是什么?_Java_Security_Winapi - Fatal编程技术网

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

Java中安全存储数据的最佳实践是什么?,java,security,winapi,Java,Security,Winapi,我有java应用程序,我需要将密码保存到加密文件中。我得到了使用Windows API的建议。我找到了围绕MS DPAPI的JNI包装器。看起来不错。但我想知道是否存在其他库或方法来使用WindowsAPI将数据安全存储到文件中?或者Java中是否存在一些不使用Windows API的安全存储方法?我从不使用安全存储。你能给我讲讲Java在使用和不使用Windows API的情况下安全存储数据的最佳实践吗 首先:使用Windows API有点毫无意义。即使您无法想象,也可能需要迁移 第二:只有在

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

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

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

输入加密密钥后,可以将其存储为线程局部变量

我建议使用属性文件,并使用bouncy castle对服务层中的值进行加密和解密。这样,您可以在同一个文件中混合加密和未加密的值

当然,您可以使用Spring,并使用Spring安全加密非常轻松地完成必要的工作

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

Java方式将是一个密钥库文件。