gpt4 book ai didi

java - 如何让oracle db支持md5加密?

转载 作者:行者123 更新时间:2023-12-02 06:36:52 27 4
gpt4 key购买 nike

我一直在开发一个java web应用程序,其中包含使用spring security、md5加密和Oracle作为数据库的登录功能。在使用 md5 加密之前,我的应用程序运行良好。但是使用它后,我的应用程序不想重定向到下一页,总是登录错误。我查了一下,说oracle还不支持md5。

这是 xml:

    <authentication-manager>
<authentication-provider>
<password-encoder hash="md5"/>
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="
SELECT username, password, 1 as enabled
FROM USER_ACCOUNT WHERE username=?"

authorities-by-username-query="
SELECT u.username, ur.authority FROM USER_ACCOUNT u, USER_ROLES ur
where u.user_id = ur.user_id and u.username =?"

/>
</authentication-provider>
</authentication-manager>

有什么办法让oracle db支持md5加密吗?

问候

尤努斯

最佳答案

EJP 是对的。 MD5 是一种加密哈希函数,而不是一种加密算法。就加密算法而言,我相信 Oracle 支持具有各种 key 大小(128、192 和 256 位)的 3DES168 和 AES。

对于登录功能,您绝对希望使用哈希函数而不是加密。哈希是单向数据转换,加密用于双向转换(您可以加密和解密目标数据)。话虽这么说,Oracle 确实支持其文档中概述的各种哈希方法:http://docs.oracle.com/cd/E11882_01/appdev.112/e25788/d_crypto.htm#ARPLS65700

SHA1 哈希值:hashed_data := dbms_crypto.hash(original_data, dbms_crypto.HASH_SH1);

MD5 哈希:hashed_data := dbms_crypto.hash(original_data, dbms_crypto.HASH_MD5);

如果您想在中实现身份验证系统,我建议使用 SHA-1。在对密码进行哈希处理之前,您还应该对密码进行加盐处理。您可以在这里阅读一篇关于密码加盐的优秀文章:http://www.cubehouse.org/blog/2011/05/02/password-hashing-how-to-make-it-not-suck-a-basic-guide/

为了提高安全性,请使用具有长位长度的 SHA-2,因为针对 SHA-1 的攻击变得非常有效。

关于java - 如何让oracle db支持md5加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19557840/

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