02.12.08

Rotina de criptografia e decriptografia

Enviado em Banco de Dados, Oracle XE tagged , , , , , , , , , , , às 10:08 de claudiocoelho

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;

Deixe seu comentário