ITQ*_*est 5 database oracle database-administration oracle10g oracle11g
我想加密数据库中的密码列,并且我正在尝试使用DBMS_CRYPTO包中存在的加密函数(已将 sys 帐户的执行访问权限授予当前用户),但出现以下错误。请举例说明如何使用此功能:
select DBMS_CRYPTO.encrypt('12345', dbms_crypto.DES_CBC_PKCS5, 'A1') from dual;
Run Code Online (Sandbox Code Playgroud)
错误:
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;
/
Run Code Online (Sandbox Code Playgroud)
.
4353
Run Code Online (Sandbox Code Playgroud)
您还必须使用更长的密钥
select DBMS_CRYPTO.encrypt(UTL_RAW.CAST_TO_RAW ('ABCDEFGH12345'), 4353 /* = dbms_crypto.DES_CBC_PKCS5 */, 'A1A2A3A4A5A6CAFE') from dual;
9320CBCBD25E8721BD04990A0EAEAF00
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38281 次 |
| 最近记录: |