Java Jasypt 1.9:使用感叹号加密密码
我使用的是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作为历史事件,会给
./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
等函数或类似函数。关键是让攻击者花费大量时间通过暴力手段查找密码。