将 WebDAV 凭据安全地存储在数据库中
Securely storing WebDAV credentials in a database
我目前正在网页中实现 WebDAV FileBrowser(后端基于 FlySystem)。一切正常,但我不太确定如何在数据库中正确存储用户的凭据(目标是用户只需登录门户(基于 OpenID Connect,我们的 WebDAV 解决方案不支持) )).
以明文形式存储它们显然不是解决方案,将它们存储为 MD5 散列并使用摘要式身份验证不起作用,因为随机数。
有什么想法吗?
您可以而且应该存储摘要规范中的 a1md5 因子。这是一种非常安全的散列形式,并且与 Digest 身份验证兼容。
对于执行此操作的 java 代码,请参阅 Milton webdav 的 DigestGenerator,您可以在其中使用 encodePasswordInA1Format 方法:
public String encodePasswordInA1Format( String username, String realm, String password ) {
String a1 = username + ":" + realm + ":" + password;
String a1Md5 = DigestUtils.md5Hex( a1 );
return a1Md5;
}
我目前正在网页中实现 WebDAV FileBrowser(后端基于 FlySystem)。一切正常,但我不太确定如何在数据库中正确存储用户的凭据(目标是用户只需登录门户(基于 OpenID Connect,我们的 WebDAV 解决方案不支持) )).
以明文形式存储它们显然不是解决方案,将它们存储为 MD5 散列并使用摘要式身份验证不起作用,因为随机数。
有什么想法吗?
您可以而且应该存储摘要规范中的 a1md5 因子。这是一种非常安全的散列形式,并且与 Digest 身份验证兼容。
对于执行此操作的 java 代码,请参阅 Milton webdav 的 DigestGenerator,您可以在其中使用 encodePasswordInA1Format 方法:
public String encodePasswordInA1Format( String username, String realm, String password ) {
String a1 = username + ":" + realm + ":" + password;
String a1Md5 = DigestUtils.md5Hex( a1 );
return a1Md5;
}