SQL> set serverout on
SQL> declare
2 l_link varchar2(1000);
3 l_crypto raw(1000);
4 begin
5 l_crypto := dbms_crypto.encrypt(
6 UTL_I18N.STRING_TO_RAW(user||to_char(sysdate,'ddmmyyyyhh24miss'), 'AL32UTF8'),
7 DBMS_CRYPTO.ENCRYPT_AES256+DBMS_CRYPTO.CHAIN_CBC+DBMS_CRYPTO.PAD_PKCS5,
8 utl_raw.cast_to_raw(rpad(user||'secret_sauce',32,'x'))
9 );
10
11 dbms_output.put_line(l_crypto);
12
13 end;
14 /
169A15EB63BDF32D6500AE42E15D88AE45EB57D3895C2280E7F907FA31477217
PL/SQL procedure successfully completed.
SQL>
SQL> accept userid char prompt 'Enter your userid: '
Enter your userid: MCDONAC
SQL> accept cyrpt char prompt 'Enter your key: '
Enter your key: 169A15EB63BDF32D6500AE42E15D88AE45EB57D3895C2280E7F907FA31477217
SQL> declare
2 l_user varchar2(30) := '&&userid';
3 l_link varchar2(1000);
4 l_crypto raw(1000) := hextoraw('&&cyrpt');
5 l_decrypt raw(1000);
6 begin
7 l_decrypt := DBMS_CRYPTO.DECRYPT
8 (
9 src => l_crypto,
10 typ => DBMS_CRYPTO.ENCRYPT_AES256+DBMS_CRYPTO.CHAIN_CBC+DBMS_CRYPTO.PAD_PKCS5,
11 key => utl_raw.cast_to_raw(rpad(l_user||'secret_sauce',32,'x'))
12 );
13 DBMS_OUTPUT.PUT_LINE(UTL_I18N.RAW_TO_CHAR (l_decrypt, 'AL32UTF8'));
14 end;
15 /
MCDONAC06072016102641
PL/SQL procedure successfully completed.