Criptografando Imagens com o Delphi

 

procedure cripto(const BMP: TBitmap; Key: Integer);

var

  BytesPorScan: Integer;

  w, h: integer;

  p: pByteArray;

begin

  try

    BytesPorScan := Abs(Integer(BMP.ScanLine[1]) -

      Integer(BMP.ScanLine[0]));

  except

    raise Exception.Create('Erro !');

  end;

  RandSeed := Key;

  for h := 0 to BMP.Height - 1 do

  begin

    P := BMP.ScanLine[h];

    for w := 0 to BytesPorScan - 1 do

      P^[w] := P^[w] xor Random(256);

  end;

end;

 

  Agora vamos ao evento OnClick do Button chamar a nossa procedure cripto, basta digitar o seguinte código:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  cripto(Image1.Picture.Bitmap, 1);

  Image1.Refresh;

end;

 

  Ao chamar a rotina passamos como parâmetro o caminho da imagem que no exemplo foi utilizado o componente image e 1 como um valor inteiro para retornamos a imagem normal, logo após a execução da nossa procedure atualizamos o image para que ele possa exibir nossa imagem criptografada.

Veja algumas fotos do nosso aplicativo em ação. A foto do exemplo com a imagem normal.

 

Nossa imagem criptografada.

 

Para descriptografar a imagem basta dar um clique no botão novamente.

 

Conclusão: com este exemplo podemos criar poderosos sistemas de criptografia, fica a seu critério implementar diversos recursos neste tipo de aplicativo.