我想加密数据库中的密码列,并且我正在尝试使用内部存在的加密函数DBMS_CRYPTO
包(已从 sys 帐户向当前用户授予执行访问权限),但出现以下错误。
请举例说明如何使用此功能:
select DBMS_CRYPTO.encrypt('12345', dbms_crypto.DES_CBC_PKCS5, 'A1') from dual;
Error:
ORA-06553: PLS-221: 'DES_CBC_PKCS5' 不是过程或未定义
06553.00000 - “PLS-%s:%s”
常量 dbms_crypto.DES_CBC_PKCS5 只能在 PL/SQL 上引用,不能从 SQL 引用。
您必须将其替换为 SELECT 语句中的文字值。
要获取值,请使用 PL/SQL 块
begin
dbms_output.put_line(dbms_crypto.DES_CBC_PKCS5);
end;
/
.
4353
您还必须使用更长的密钥
select DBMS_CRYPTO.encrypt(UTL_RAW.CAST_TO_RAW ('ABCDEFGH12345'), 4353 /* = dbms_crypto.DES_CBC_PKCS5 */, 'A1A2A3A4A5A6CAFE') from dual;
9320CBCBD25E8721BD04990A0EAEAF00
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)