我目前在我的 Oracle 数据库中使用DBMS_CRYPTO.HASH
. 然而,此时,我需要让我的 Java 应用程序能够以类似于 MySQL 的方式验证用户输入的密码。就像是:
SELECT *
FROM user_login_table
WHERE password = SHA1('MyPassword');
我目前正在通过以下过程进行散列:
CREATE OR REPLACE PROCEDURE
MUNGAI.p_auth_insert_user (
par_username in varchar2,
par_password in varchar2,
par_work in varchar2
)
IS l_hash raw(2000);
BEGIN
l_hash :=
dbms_crypto.hash(
utl_i18n.string_to_raw(par_password || par_work || upper(par_username),
'AL32UTF8'
),
dbms_crypto.hash_sh1
);
INSERT INTO user_login_table (user_name, p_word, work_class)
VALUES (par_username, l_hash, par_work);
END p_auth_insert_user;
/
然后我执行如下过程,插入表中:
EXEC MUNGAI.p_auth_insert_user('MUNGAI', 'gatungo', '999')
在我的情况下有没有更好的方法来实现这一点?如果这很重要,我正在使用 Oracle 11g。