Max.20 0 Denunciar post Postado Setembro 19, 2009 Ola pessoal peguei este codigo para estudar mas nao estou entendendo uma parte. è um programa de criptografia, toda vez q vou criptografar uma mensagem o programa pede para digitar um numero de 2 a 255. Cada numero é um tipo de cifragem diferente..gostaria de enteder a logica dessa troca de cifragem.. alguem poderia me explicar o q esta acontecendo nesta linha de código: Obrigado desde ja.. texto := memo1.text; shift := StrToInt(edit1.text); for pos := 1 to length(texto) do texto[pos] := chr(ord(texto[pos]) + shift); memo2.text := texto; end; end; Logo abaixo o codigo completo: procedure TForm1.Button1Click(Sender: TObject); var texto : string; pos : integer; shift :integer; begin if edit1.text = '' then showmessage('Please Insert A Shift Number1') else if StrToInt(edit1.text) > 255 then ShowMessage('Number Must Be Less Than 256') Else if StrToInt(Edit1.text) < 2 then ShowMessage('Number Must Be Greater Than 1') else begin texto := memo1.text; shift := StrToInt(edit1.text); for pos := 1 to length(texto) do texto[pos] := chr(ord(texto[pos]) + shift); memo2.text := texto; end; end; procedure TForm1.Button2Click(Sender: TObject); var texto : string; posicao : integer; shift : integer; begin if edit1.text = '' then showmessage('Please Insert A Shift Number1') else if StrToInt(edit1.text) > 255 then ShowMessage('Number Must Be Less Than 256') Else if StrToInt(Edit1.text) < 2 then ShowMessage('Number Must Be Greater Than 1') else begin texto := memo2.text; shift := StrToInt(edit1.text); for posicao := 1 to length(texto) do texto[posicao] := chr(ord(texto[posicao]) - shift); memo1.text := texto; end; end; Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Setembro 20, 2009 Leia os comentários que eu coloquei no source... texto := memo1.text; //Copiando o conteudo do memo para uma variável (Facilita a manipulação) shift := StrToInt(edit1.text); //Copia o valor (Aquele 1 a 255) para uma variável do tipo integer for pos := 1 to length(texto) do //Início do loop texto[pos] := chr(ord(texto[pos]) + shift); //Percore cada caractere do texto e cifra o mesmo, detalhes abaixo memo2.text := texto; //Devolve o texto cifrado para o memo... end; end; É o seguinte, criptografia é uma tecnica que visa esconder (disfarçar) um conteúdo, informação, etc., para que pessoas indevidas não consigam saber o que está la. Você pode criar seu próprio algorítmo de criptografia ou usar os algorítmos prontos muito conhecidos. No caso, o autor do source tentou criar o seu algorítmo. Qual é a lógia implantada? no caso, ele pega o código de cada caractere (Cada letra ou simbolo textual tem um código de identificação, pesquise sobre tabela ASCII) e somou com o valor da variavel shift. Assim, só seria possível saber o que estava escrito antes sabendo o valor de shift e fazendo a operação inversa. Este é um algorítmo de exemplo mas que não deveria ser usado em um contexto profissional pois é uma criptografia muito fácil de quebrar, procure por outros algorítmos, aqui no Forum iMasters (laboratório de Scripts da seção delphi) tem alguns algorítmos bons para usar no dia-a-dia... Compartilhar este post Link para o post Compartilhar em outros sites
Raficcha 1 Denunciar post Postado Setembro 21, 2009 Este tipo de criptografia, soma os bytes da string a ser criptografada com o valor que você informou no edit1. Compartilhar este post Link para o post Compartilhar em outros sites