Java Jasypt 1.9:使用感叹号加密密码

Java Jasypt 1.9:使用感叹号加密密码,java,password-encryption,jasypt,Java,Password Encryption,Jasypt,我使用的是Jasypt 1.9,当我尝试用感叹号加密密码时,它失败了。它工作得很好,没有感叹号 例如: ./encrypt.sh input="abc!abc" -sh: !abc": event not found Jasypt声称它是固定在这里的 注: ./encrypt.sh input="abc\!abc" works, but decrypting produces the "abc\!abc" 使用单引号而不是双引号。使用双引号,shell首先尝试展开!abc作为历史事件,会给

我使用的是Jasypt 1.9,当我尝试用感叹号加密密码时,它失败了。它工作得很好,没有感叹号

例如:

./encrypt.sh input="abc!abc"
-sh: !abc": event not found
Jasypt声称它是固定在这里的

注:

 ./encrypt.sh input="abc\!abc" works, but decrypting produces the "abc\!abc"

使用单引号而不是双引号。使用双引号,shell首先尝试展开
!abc
作为历史事件,会给您带来该错误。单引号中的文本不展开


这是一个linux shell特性,与Jasypt无关。shell在执行任何操作之前正在扩展表达式。

您的问题是什么?不要加密密码,当攻击者获得密码时,他也会获得加密密钥。仅仅使用散列函数是不够的,仅仅添加一个salt对提高安全性几乎没有作用。用随机盐在HMAC上迭代大约100毫秒,并用散列保存盐。使用诸如
ehash
PBKDF2
Rfc2898DeriveBytes
Bcrypt
passlib.hash
等函数或类似函数。关键是让攻击者花费大量时间通过暴力手段查找密码。