Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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 我们如何使用jasypt确保安全?_Java_Encryption_Cryptography_Jasypt - Fatal编程技术网

Java 我们如何使用jasypt确保安全?

Java 我们如何使用jasypt确保安全?,java,encryption,cryptography,jasypt,Java,Encryption,Cryptography,Jasypt,最近,我通过Jasypt API保护属性文件条目。根据Jasypt,为了解密ENC(..)附带的属性文件中的条目,我们需要使用一个安全密码,一个密钥,如下所示(不是web应用程序): 当然,我们可以使用 org.jasypt.encryption.pbe.config.SimplePBEConfig setPassword() 但我的问题是,如果我们提取jar文件,第三方就可以找到密钥。在这种情况下,我们如何确保安全 提前感谢,, JK密钥应存储在应用程序外部的环境变量中 例如,在sp

最近,我通过Jasypt API保护属性文件条目。根据Jasypt,为了解密ENC(..)附带的属性文件中的条目,我们需要使用一个安全密码,一个密钥,如下所示(不是web应用程序):

当然,我们可以使用

    org.jasypt.encryption.pbe.config.SimplePBEConfig setPassword()
但我的问题是,如果我们提取jar文件,第三方就可以找到密钥。在这种情况下,我们如何确保安全

提前感谢,,
JK

密钥应存储在应用程序外部的环境变量中

例如,在spring配置文件中:

<bean id="environmentConfig" class=  
"org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig"  
p:passwordEnvName="APP_ENCRYPTION_PASSWORD" ...

在细节/信息方面有点短:这会导致它进入低质量的Post队列,这可能会导致删除,即使它被更正。例如,当我将应用程序移植到不同的机器时,我需要再次设置环境变量,对吗。相反,我们不能做到以下几点,似乎更安全。存储密码的散列和一个随机值(salt),这样每当用户输入时,我们就使用存储的salt生成散列并比较这两个散列。因为我们无法获得反向散列,所以它会更安全。我是这个领域的新手,可能有点傻。嗯,这种方法的问题是两个密码字符串可能会生成相同的哈希值。例如,字符串“BBBB”、AaBB“BBAa”具有相同的散列值。在我的应用程序中,我连接到需要进行身份验证的第三方系统。到目前为止,我已放置了用户Id和密码(纯文本)在属性文件中。谁提取过jar,谁就能看到密码。因此,我想加密密码。有什么更好的方法可以帮助您。这是一个使用JavaFX的桌面应用程序。您需要在OS环境变量中放入jasypt密钥。
<bean id="environmentConfig" class=  
"org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig"  
p:passwordEnvName="APP_ENCRYPTION_PASSWORD" ...