Criptografia é o ato de codificar dados em informações aparentemente sem sentido, para que pessoas não consigam ter acesso às informações que foram cifradas.
MD5
O MD5 (Message-Digest algorithm 5) é um algoritmo de hash de 128 bits unidirecional desenvolvido pela RSA Data Security, Inc.
A partir de uma texto de um tamanho qualquer, ele gera um valor hash de 128 bits; com este algoritmo, é computacionalmente impraticável descobrir duas mensagens que gerem o mesmo valor. O resultado será uma hash de 32 caracteres.
Por ser um algoritmo unidirecional, um hash MD5 não pode ser transformado novamente no texto que lhe deu origem.
Segue abaixo o código completo:
unit uPrincipal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdHashMessageDigest;
type
TFrmPrincipal = class(TForm)
edtTextoMD5: TEdit;
btnTextoMD5: TButton;
mmoTextoMD5: TMemo;
edtArquivoMD5: TEdit;
btnArquivoMD5: TButton;
mmoArquivoMD5: TMemo;
Label1: TLabel;
Label2: TLabel;
procedure btnTextoMD5Click(Sender: TObject);
procedure btnArquivoMD5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function MD5Texto(const texto: string): string;
function MD5Arquivo(const arquivo: string): string;
end;
var
FrmPrincipal: TFrmPrincipal;
implementation
{$R *.dfm}
{ TFrmPrincipal }
// criptografar um arquivo
procedure TFrmPrincipal.btnArquivoMD5Click(Sender: TObject);
begin
mmoArquivoMD5.Lines.Add(MD5Arquivo(edtArquivoMD5.Text));
end;
procedure TFrmPrincipal.btnTextoMD5Click(Sender: TObject);
begin
mmoTextoMD5.Lines.Add(MD5Texto(edtTextoMD5.Text));
end;
function TFrmPrincipal.MD5Arquivo(const arquivo: string): string;
var
md5: TIdHashMessageDigest5;
fs: TFileStream;
begin
if not FileExists(arquivo) then
begin
Result := 'Arquivo não encontrado, verique o endereço informado!';
exit;
end;
md5 := TIdHashMessageDigest5.Create;
fs := TFileStream.Create(arquivo, fmOpenRead OR fmShareDenyWrite);
try
Result := md5.HashStreamAsHex(fs);
finally
fs.Free;
md5.Free;
end;
end;
// criptografar uma string
function TFrmPrincipal.MD5Texto(const texto: string): string;
var
md5: TIdHashMessageDigest5;
begin
md5 := TIdHashMessageDigest5.Create;
try
Result := md5.HashStringAsHex(texto);
finally
md5.Free;
end;
end;
end.
Download
Gostou? Deixe seu comentário... Convido você a seguir meu blog, sua presença é bem vinda!【ツ】
Nenhum comentário:
Postar um comentário