Rotina de criptografia e decriptografia

Exemplo de rotina simples para criptografia/descriptografia em PL/SQL.
Observe que a rotina pode ser facilmente convertida para outra linguagem.
Essa rotina pode ser usada, por exemplo, para criptografar um campo que contenha a senha em um banco.

A mesma rotina que criptografa, serve para descriptografar.

O funcionamento é bem simples: a rotina recebe uma string e retorna outra string, de mesmo tamanho com cada um dos seus caracteres com valor ASCII invertido, isto é, se o caractere tiver o valor 0 (zero), o caractere criptografado será 255, se tiver o valor 1, o caractere criptografado será 254, se for 2, 253 e assim sucessivamente.


create or replace function fun_cripto(
p_valor in varchar2 )
return varchar2
is
sCripto varchar2(100) := ”;
cChar char(1);
nAsc number;
begin

for i in 1..length(p_valor) loop — percorre toda a string recebida
cChar := substr( p_valor, i, 1 ); — valor ASCII de cada caractere
nAsc := 255 – ascii( cChar ); — valor ASCII invertido do caractere
sCripto := sCripto || chr( nAsc ); — adiciona caractere invertido à string de saída
end loop;

return( sCripto );

end fun_cripto;

Deixe um comentário