Ao criptografar com PL SQL utilizando DBMS_CRYPTO.HASH e RAWTOHEX a senha " vitellozzi " obtenho a senha " 2e834a6f5a3ffa46998428e656cabe97 ".
SELECT LOWER((DBMS_CRYPTO.HASH( RAWTOHEX('vitellozzi'), 2))) FROM DUAL;
SELECT LOWER((DBMS_CRYPTO.HASH( RAWTOHEX('vitellozzi'), 2))) FROM DUAL;
DECLARE
input_string VARCHAR2 (200) := 'Secret Message';
output_string VARCHAR2 (200);
encrypted_raw RAW (2000); -- stores encrypted binary text
decrypted_raw RAW (2000); -- stores decrypted binary text
num_key_bytes NUMBER := 256/8; -- key length 256 bits (32 bytes)
key_bytes_raw RAW (32); -- stores 256-bit encryption key
encryption_type PLS_INTEGER := -- total encryption type
DBMS_CRYPTO.ENCRYPT_AES256
+ DBMS_CRYPTO.CHAIN_CBC
+ DBMS_CRYPTO.PAD_PKCS5;
iv_raw RAW (16);
BEGIN
DBMS_OUTPUT.PUT_LINE ( 'Original string: ' || input_string);
key_bytes_raw := DBMS_CRYPTO.RANDOMBYTES (num_key_bytes);
iv_raw := DBMS_CRYPTO.RANDOMBYTES (16);
encrypted_raw := DBMS_CRYPTO.ENCRYPT
(
src => UTL_I18N.STRING_TO_RAW (input_string, 'AL32UTF8'),
typ => encryption_type,
key => key_bytes_raw,
iv => iv_raw
);
dbms_output.put_line('Encrypted: '||encrypted_raw);
-- The encrypted value "encrypted_raw" can be used here
decrypted_raw := DBMS_CRYPTO.DECRYPT
(
src => encrypted_raw,
typ => encryption_type,
key => key_bytes_raw,
iv => iv_raw
);
output_string := UTL_I18N.RAW_TO_CHAR (decrypted_raw, 'AL32UTF8');
DBMS_OUTPUT.PUT_LINE ('Decrypted string: ' || output_string);
END;
Original string: Secret Message
Encrypted: 3873577D1C8DD73D827DC9AE77FB9FFF
Decrypted string: Secret Message
Então sem chances, agradeço mesmo assim !!!Pelo que eu sei, não é possível descriptografar um HASH... Um hash é como se fosse a impressão digital da sua string. Serve pra comparar se o hash que você tem é igual o hash que ta sendo informado.
Usuários navegando neste fórum: Nenhum usuário registrado e 24 visitantes