gpt4 book ai didi

glassfish - Glassfish 4 中的密码加密算法

转载 作者:行者123 更新时间:2023-12-04 12:31:57 30 4
gpt4 key购买 nike

我最近将 Glassfish 从 3.1.2 更新到 4.0,并想设置一个我以前在我的应用程序上使用过的 JDBCRealm,它使用基于 FORM 的身份验证。密码在数据库中使用 SHA-256 散列(这是默认的摘要算法选项)。

该领域具有在此 Glassfish 版本中成为必需的属性:密码加密算法。令人难以置信的是,Glassfish 官方文档说它是可选的,并且输入字段下的注释说将其留空有风险,但是您不能将其留空,因为它是强制性的。

无论我在此属性中设置什么,我都无法登录我之前正在运行的应用程序。 (这对新注册用户和老用户都是如此。)我在谷歌上搜索了好几天,但找不到该字段的选项。有什么选择?

另外,我在 MySQL 中使用 Glassfish。 Glassfish 是将加密的散列密码发送到数据库,还是只是给 MySQL 一些指令以使用这种加密存储散列密码?

This question对我有所帮助,但没有解决我的问题。

更新:实际上,我不使用经典的基于 FORM 的身份验证,而是使用 HttpServletRequest#login() 使用编程登录的自定义 JSF 表单。 ,但我认为这在这个问题上并不重要。

最佳答案

我已经使用 Glassfish 4.1 和为 MySQL 配置的 JDBC Realm 测试了一个简单的用例。

您可以设置一个简单的用户表:

  • name:存储用户名
  • 密码:存储用户的 SHA-256 哈希值
    密码(不加盐)
  • group:存储用户组(即admin、user)

  • IE。
    INSERT INTO users (name, password, group) VALUES ("admin", SHA2("password", 256), "admins"); 

    在管理控制台中,转至配置 > 安全 > 领域并编辑您的领域。

    在“密码加密算法”字段中输入“AES”。

    在“摘要算法”字段中输入“SHA-256”。

    在“字符集”字段中输入“UTF-8”。

    关于glassfish - Glassfish 4 中的密码加密算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22731036/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com