首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使oracle支持md5加密?

如何使oracle支持md5加密?
EN

Stack Overflow用户
提问于 2013-10-24 05:41:38
回答 2查看 1.2K关注 0票数 0

我一直在开发一个java web应用程序,它包含使用spring安全性、md5加密和Oracle作为数据库的登录功能。在使用md5加密之前,我的应用程序运行良好。但是在使用它之后,我的应用程序不会重定向到下一个页面,总是登录错误。我一直在谷歌上搜索,据说甲骨文还不支持md5。

以下是xml:

代码语言:javascript
复制
    <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支持md5加密?

问候

尤努斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-29 00:44:12

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

对于登录函数,您肯定希望使用散列函数,而不是加密。散列是单向数据转换,加密用于双向转换(您可以对目标数据进行加密和解密)。尽管如此,甲骨文确实支持各种散列方法,如它们的docs: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的攻击正在变得非常有效。

票数 2
EN

Stack Overflow用户

发布于 2015-04-07 00:04:24

您需要更新用户的密码。

更新用户设置密码=更低(DBMS_OBFUSCATION_TOOLKIT.md5(输入=> UTL_RAW.cast_to_raw(‘topSecretPassword’))在其中用户名=‘用户’;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19557840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档