Você está na página 1de 6

Incio Sobre o autor Curso de Delphi o Definies Bsicas Functions e Procedures Variveis Bsicas o Documentos Gerais Dicas Delphi

phi Tabela ASCII Estendida Completa o Cdigos Prontos (Modelos) Criptografia RC4 em Delphi e Lazaruz Dados computador com Delphi Salvar e Abrir texto

Voltar para Cdigos Prontos (Modelos) Imprimir Pgina

Criptografia RC4 em Delphi e Lazaruz


Quando se necessrio armazenar ou enviar alguma informao importante necessrio estar criptografando. Neste artigo adaptei um conjunto de cdigos escrito em VBA para pascal/Delphi que permite criptografar texto com o algoritmo RC4. Cdigo fonte da Unit principal implementada para Lazarus, e compatvel com Delphi.
{ Luiz Henrique Rosa da Silva

blog.aguape21.com.br [RC4 Ver 0] Algoritmo adaptado da pgina: http://forum.zwame.pt/showthread.php?t=283167&page=1 acessado em 05/10/2012 as 18:10 } unit aqF_RC4; {$mode objfpc}{$H+} interface uses SysUtils; function EncriptRC4(Text,Chave:String):String; Function DesencriptRC4(Text,Chave:string):string; implementation procedure dfinir_SBox(Chave:string; var s:array of integer); var k:array[0..255] of Integer; i:integer; j:integer; buffer:integer; begin i := 0; while i <= 255 do begin s[i] := i; inc(i); end; i := 0; while i <= 255 do begin K[i] := ord(Chave[((i * 2) Mod length(Chave)) + 1])+ ord(Chave[((i * 2) + 1) Mod length(Chave) + 1]); inc(i); end; j := 0; i := 0; while i <= 255 do begin j := (j + S[i] + K[i]) Mod 256; Buffer := S[i]; S[i] := S[j]; S[j] := Buffer; inc(i) end;

end;

function EncriptRC4(Text,Chave:String):String; var s:array[0..255] of Integer; k:array[0..255] of Integer; i:integer; j:integer; T:integer; buffer:integer; Seccao:integer; SeccaoTexto:integer; begin result := ''; dfinir_SBox(chave,s); i:= 0; j:= 0; Seccao := 1; while seccao <= length(text) do begin SeccaoTexto := ord(text[seccao]); i := (i+1) mod 256; j := (j+s[i]) mod 256; buffer := s[i]; s[i] := s[j]; s[j] := buffer; t := (s[i]+s[j]) mod 256; result := result + inttohex(SeccaoTexto xor s[t],2); inc(seccao); end; end; Function DesencriptRC4(Text,Chave:string):string; var s:array[0..255] of Integer; k:array[0..255] of Integer; i:integer; j:integer; T:integer; buffer:integer; Seccao:integer; SeccaoTexto:integer; begin result := ''; dfinir_SBox(chave,s); i := 0; j := 0; Seccao := 1; while Seccao < length(text) do begin seccaotexto := strtoint('$'+copy(text,seccao,2)); i := (i+1) mod 256; j := (j+s[i]) mod 256; buffer := s[i]; s[i] := s[j]; s[j] := buffer;

t := (s[i]+s[j]) mod 256; result := result + Chr(SeccaoTexto Xor S[T]); inc(Seccao,2); end; end; end.

Se preferir pode baixar o projeto completo e o programa pronto. Baixar: Baixar Projeto RC4 Lazarus

_\(@)/_ Link permanente para este artigo: http://blog.aguape21.com.br/curso-dedelphi/cdigos-prontos-modelos/criptografia-rc4-em-delphi-e-lazaruz

Deixe uma resposta


O seu endereo de email no ser publicado Campos obrigatrios so marcados * Nome: * E-mail: * Website: Qual o valor do quadrado? 7=2

Mensagem: *

Voc pode usar estas tags e atributos HTML: <a href="" title=""> <abbr
title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code lang=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Enviar comentrio

Tweets de @Aguape21

Busca / Traduzir Temas

Recomendar Acesso

Login Posts RSS RSS dos comentrios WordPress.org

Copyright
Qualquer contedo dentro do endereo blog.aguape21.com.br, poder ser reproduzido ou divulgado, parcialmente ou integramente desde que seja referenciado os autores e origem. Observao: Parte do contedo faz parte de uma coleo de informaes acumulado ao longo do tempo, cujo foram produzidos por outros desenvolvedores na qual no me preocupei a anotar a referencia, pois em principio seria apenas para uso pessoal. Entendo que essas informaes podero contribuir para evoluo da programao, reconheo que atravs destes autores obtive parte do conhecimento que tenho hoje. Respeito o direito de autoria e propriedade intelectual, caso se sinta lesado por ter contedo seu nesta pgina atenderei prontamente pedidos para referencia ou remoo contedo.

Recado: Todo o contedo do site agp21.info, foi transferido para o site blog.aguape21.com.br.

Voltar ao topo

Powered by WordPress and the Graphene Theme.

Você também pode gostar