02.12.08
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 tiever o valor 0 (zero), o caractere criptografado será 255.
Se o caractere tiver o valor 10, o caractere criptografado será 245.
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;