我需要在oracle上加密数据并在DB2上解密。
我只能在oracle上使用DBMS_OBFUSCATION_TOOLKIT。
set serveroutput on;
DECLARE
L_TEXT VARCHAR2(16) := '1234567890123456';
U_ID VARCHAR2(16) := 'asdfghjk12345678';
L_ENCRYPTED VARCHAR2(512);
BEGIN
DBMS_OBFUSCATION_TOOLKIT.DES3ENCRYPT(INPUT => UTL_RAW.CAST_TO_RAW(L_TEXT),
KEY => UTL_RAW.CAST_TO_RAW(U_ID),
ENCRYPTED_DATA => L_ENCRYPTED);
dbms_output.put_line(L_ENCRYPTED);
END;
OUTPUT: 9E2CC8BFE31C23189D16A6D4E946DF2E
-----------------------------------------------
select decrypt_char(CAST('9E2CC8BFE31C23189D16A6D4E946DF2E' AS VARBINARY(1000)), 'asdfghjk12345678') from SYSIBM.SYSDUMMY1
OUTPUT: ExampleExceptionFormatter: exception message was: [SQ20146] The decryption function failed. The data is not encrypted.
你能帮我吗?
答案 0 :(得分:2)
DES3ENCRYPT
听起来像是使用DES3。
DECRYPT_CHAR
在DB2(不推荐使用的BTW)上可以“只能解密使用ENCRYPT函数加密的值”
ENCRYPT加密算法为“带填充的RC2分组密码”