- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Java 6、Jasypt 和 BouncyCaSTLe 生成散列密码。我将它们存储在具有默认 UTF-8 字符编码的 MySQL 5.5 数据库中。我试图弄清楚我使用 SHA-256 哈希算法和 20 字节的 RandomSaltGenerator 时应该给定我的 VARCHAR 密码字段多长时间。这是我在 Spring 应用程序上下文中的声明:
<beans:bean id="bcProvider" class="org.bouncycastle.jce.provider.BouncyCastleProvider" />
<beans:bean id="jasyptStringDigester" class="org.jasypt.digest.StandardStringDigester">
<beans:property name="algorithm">
<beans:value>SHA-256</beans:value>
</beans:property>
<beans:property name="provider">
<beans:ref bean="bcProvider" />
</beans:property>
<beans:property name="saltGenerator">
<beans:ref bean="saltGenerator" />
</beans:property>
<beans:property name="saltSizeBytes" value="20" />
</beans:bean>
感谢您的指导,- 戴夫
最佳答案
SHA-256 哈希函数的输出长度为 256 位,这也许不足为奇。字符数取决于你如何编码它。
一个直接的二进制编码,每字节 8 位,会给你 32 个字节,但如果你将哈希输出存储在文本字段中,你可能正在使用例如编码它。 Base64(每个字符 6 位,填充为 4 个字符的倍数,总共 44 个字符)或可能是十六进制(每个字符 4 位,总共 64 个字符)。
除了散列之外,密码字段通常还包含重建它所需的盐。这将添加一些额外的字符数,具体取决于所选择的确切密码哈希方案、输出编码和参数(例如您的 saltSizeBytes
)。
无论如何,如果您的密码散列方法的输出长度没有明确记录,找到它的最简单方法可能就是向它提供一些测试密码并查看它返回的内容。 (通常,输出应具有恒定长度。)然后,如果需要,可以在数据库定义中添加一些边距以确保安全。
哦,正如 Waleed Khan 所说,您真的应该使用实现 key stretching 的密码散列方法。 ,例如 PBKDF2 .
关于mysql - 我应该为 Jasypt 散列密码使用多长的密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14167263/
我尝试在我的 Jasypt 中使用 3DES,但遇到异常。 但是当我使用默认算法时它工作正常 这是代码 - public MyEncryptablePropertyResolver(Environme
尝试使用 encrypt.sh 实用程序,我的密码包含特殊字符: ./encrypt.sh input="$%#!"password="your_jasypt_password"algorithm="
我有简单的java控制台应用程序,我在其中使用Jasypt1.9.2来加密数据库连接字符串。代码在 Eclipse 中运行得很好,但是导出为 Jar 的应用程序会出现此错误 这是我的简单主类:
我正在使用grails Jasypt Encryption plugin加密数据库中的数据。 如果我在Config.groovy文件中设置jasypt配置,例如: jasypt { algor
我只是想知道是否可以强制加密器始终为相同的输入返回相同的加密值。 StandardPBEStringEncryptorencryptor = new StandardPBEStringEncrypto
同事们,我在我的 spring-boot 项目中使用了 Jasypt(在 Windows 上运行的独立 jar)。我需要通过命令行传递主密码才能运行 jar 。它看起来像: java -jar -Dj
情况是我有一个使用 hibernate 的应用程序。我将其配置为与 jasypt 一起使用,以便该应用程序将数据加密到数据库中。然后,我有另一个从数据库读取数据的应用程序,它不使用 hibernate
我们的安全部门希望我们使用 256 位加密来加密 SSN、用户名等,因此我们决定使用 JASYPT,示例代码如下: encryptor = new StandardPBEStringEncryptor
我想使用 Jasypt 库通过 EncryptablePropertyPlaceholderConfigurer 类在 Spring 中解密属性。我想使用非对称公钥/私钥方法加密/解密这些属性。 您能
我正在用 Java 编写一个需要对字符串进行加密和解密的程序。我正在使用 Jasypt 的 BasicTextEnctyptor。这是一个复杂的应用程序——使用异步网络和类似的东西。加密在服务器和客户
我想知道是否有像 JASYPT 这样的替代库,它可以帮助我加密/解密密码。 最佳答案 是的,有一些。我不确定你到底在找什么,但我一直在使用 BouncyCastle取得了巨大的成功。也许您也会感兴趣。
几天前,我提出了一个有关 Jasypt 问题的问题。我引用了一个抛出 EncryptionOperationNotPossibleException 的较大程序。嗯,我还是没能弄清楚问题所在。这是正在
我将 Hibernate3 与 MySql DB 一起使用,并尝试添加 Jasypt 库来处理用户密码的加密。 我在 hibernate.cfg.xml 中配置了 Jasypt,如下所示: o
我正在尝试桌面应用程序的登录/注册系统。我有一个注册表单和登录表单,凭证信息保存到 PostgreSQL 数据库中。我一开始没有加密信息,一切正常,但现在我想加密密码以保存到数据库中。我正在使用Jas
在 org.jasypt.encryption.pbe.StandardPBEByteEncryptor 中,当我比较其他几个 key 派生功能时, key 派生看起来有所不同。 initialize
在我们基于 Spring + hibernate 的 Web 应用程序中,我配置了 jasypt 来加密存储在数据库中的用户联系电话。它对加密工作正常,因为数据库包含加密字符串,而且值已解密并正确显示
您好,我有一个 Java 应用程序。我想使用 Jasypt 使用基于大小和算法生成的随机盐来加密和解密密码。 这就是我想要实现的。 创建一个随机盐。 用盐加密密码。 为用户保存盐和加密密码。 我想要盐
我使用 Java 6、Jasypt 和 BouncyCaSTLe 生成散列密码。我将它们存储在具有默认 UTF-8 字符编码的 MySQL 5.5 数据库中。我试图弄清楚我使用 SHA-256 哈希算
它适用于桌面应用程序,因此我只需要基本的登录安全性,并且我使用一个函数来加密密码,并使用另一个函数将密码从 UI 传递并散列保存到数据库中,并返回 true 或 false 取决于是否匹配。 我尝试使
加密我使用的密码(修改自 http://www.jasypt.org/encrypting-texts.html ): BasicTextEncryptor textEncryptor = new B
我是一名优秀的程序员,十分优秀!