繁体   English   中英

Glassfish 4-JDBC领域

[英]Glassfish 4 - JDBC Realm

Glassfish 4中的密码加密算法和摘要算法有什么区别? 因为密码加密算法不能为空,所以我使用了MD5,对于编码,则使用了十六进制。 摘要算法为空白,因此默认值为SHA-256。

但是,如果我使用JAAS创建了一个简单的登录应用程序,并创建了表,然后插入一个用户,并且密码已用MD5加密,则用户无法登录。如果我使用SHA-256加密了密码,则用户可以登录。

那么,“密码加密算法”字段是什么?

关于这一点,文档还不是很清楚,但是我的解释如下。 这基于Glassfish v4参考手册

密码加密算法确定数据库中密码的加密方式。 这是参数digestrealm-password-enc-algorithm 您确实希望将此设置为某种值,因为当然将密码明确保留在数据库中是一个安全漏洞。

当有人尝试进行身份验证时,glassfish需要一种将提交的内容与数据库中的内容进行比较的方法。 但是,由于后者已全部锁定,因此需要一把钥匙才能解锁。 该密钥上使用的加密(严格来说是散列)是在摘要算法(参数digest-algorithm )中定义的。 在v4中默认为SHA-256(以前是MD5)。

那么,“密码加密算法”字段是什么?

摘要算法用于加密/散列登录请求,而密码加密算法用于从db解密密码。

但是,如果我使用JAAS创建了一个简单的登录应用程序,并创建了表,插入了一个用户,并且密码已用MD5加密,则该用户无法登录。

将MD5放在密码加密字段中,并将摘要算法留空(默认情况下,在GlassFish 4中为sha-256)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM