一种方式加密甲骨文

用户名

有没有办法在oracle中对密码进行单向加密?我正在从文本字段传递密码,并且想在oralce中调用存储过程,并且在该存储过程中,它将对密码进行加密。谢谢

贾斯汀洞穴

根据定义,加密是双向的。您将永远不会加密密码。我希望您真的想对密码进行哈希处理。而且,您不希望仅散列密码,您确实希望将密码与某种随机的盐结合起来并对其进行散列。

您将使用该dbms_crypto.hash函数来计算哈希值,并使用该dbms_random.string函数来生成盐。就像是

DECLARE
  l_salt           varchar2(50);
  l_user           varchar2(50);
  l_pwd            varchar2(50);
  l_string_to_hash varchar2(150);
  l_hash           raw(150);
BEGIN
  l_salt := dbms_random.string( 'P', 50 );
  l_string_to_hash := l_user || l_pwd || l_salt;
  l_hash := dbms_crypto.hash( utl_i18n.string_to_raw( l_string_to_hash, 'AL32UTF8' ), 
                              dbms_crypto.hash_sh1 );
END;

另请参阅此askTom讨论(首先使用较旧的dbms_obfuscation_toolkit软件包而不是dbms_crypto软件包开始),以了解有关为什么使用哈希,对密码加盐的好处等的更多背景信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章