Что ж, в Oracle нет встроенной функции с именем HASHBYTES
. Он есть в SQL SERVER , но не в Oracle
Вместо этого вы можете использовать DBMS_CRYPTO.HASH
, если у вас есть эта привилегия для того же.
DBMS_CRYPTO предоставляет интерфейс для шифрования и дешифрования хранимых данных и может использоваться вместе с программами PL / SQL, выполняющими сетевые коммуникации
DBMS_CRYPTO
Обновление
Например, я использовал RAW
здесь. Вы можете проверить другие Overloaded functions
по ссылке выше, где вы также можете использовать BLOB
, CLOB
.
DECLARE
l_pwd VARCHAR2(19) := 'mysecretpassword';
l_ccn_raw RAW(128) := utl_raw.cast_to_raw(l_pwd);
l_encrypted_raw RAW(2048);
BEGIN
dbms_output.put_line('CC: ' || l_ccn_raw);
l_encrypted_raw := dbms_crypto.hash(l_ccn_raw, 1);
dbms_output.put_line('MD4: ' || l_encrypted_raw);
l_encrypted_raw := dbms_crypto.hash(l_ccn_raw, 2);
dbms_output.put_line('MD5: ' || l_encrypted_raw);
l_encrypted_raw := dbms_crypto.hash(l_ccn_raw, 3);
dbms_output.put_line('SH1: ' || l_encrypted_raw);
END;
/
OUTPUT
CC: 6D7973656372657470617373776F7264
MD4: BBBA2CBC2F6E0F158D06B34F819DB5F6
MD5: 4CAB2A2DB6A3C31B01D804DEF28276E6
SH1: 08CD923367890009657EAB812753379BDB321EEB