Gravar arquivo criptografando
24/09/2004
0
eu estou tentando criptografar um arquivo para ser gravado posteriormente da seguinto maneira
// suplonha q eu tenha uma variavel String chamada S // ela vai receber um valor do grid criptografando o msm // depois grava num arquivo TextFile q eu criei. // oq eu queria fazer era +/- isso s:= IntToStr(StrToInt(gridC.cells[0,1])+150); writeln(vFile, S);
sei q não funciona pq ele não aceita converter um nome de pessoa, por exemplo, em inteiro...
a ideia seria essa... converter para um texto para numerico, adicionar um valor, e depois gravalo
para abrir o arquivo seria feito o seguinte
S:= IntToStr(StrToInt(readln(vFile))-150);
agradeço qualquer ajuda :twisted: [/code]
Niflheim
Posts
24/09/2004
Rômulo Barros
S : String; s:= gridC.cells[0,1] + IntToStr(150); writeln(vFile, S);
24/09/2004
Niflheim
tipo, ficaria assim
:wink:
oq eu queria era pegar o valor em numerico ai eu somo um valor qualquer e depois gravo, assim o nome
seria gravado como
por exemplo
:roll:
24/09/2004
Rômulo Barros
:wink:
oq eu queria era pegar o valor em numerico ai eu somo um valor qualquer e depois gravo, assim o nome
seria gravado como
por exemplo
:roll:[/quote:6623b47503]
:arrow: Pra ser sincero... Não entendi nada
:?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?:
24/09/2004
Niflheim
vamos supor q eu tenha no grid o valor ´A´
se eu simplesmente mandar gravar no arquivo texto ele ficaria gravado o ´A´ nesse arquivo certo? qualquer pessoa q abrisse o arquivo poderia ler as informações gravadas
por isso eu quero alterar esse valor...
tipow... A + 150
o valor do A em decimal seria 65, com mais 150 ficaria 215
entao ele gravaria no arquivo o ´Î´ que eh o valor em caracter para o 215
esta entendendo :?:
24/09/2004
Rômulo Barros
Como isso é possível? ´A´ é ´A´ .... ´65´ é ´65´
24/09/2004
Niflheim
entaum se eu converter o A para decimal ficaria 65
em C/C++ isso eh bem facil, mas no delphi eu nao sei como fazer :s
faça o teste
tecle ai:
Alt + 65
isso resulta no A certo???
tente o seguinte agora
Alt + 215
isso resulta no Î
era isso q eu tava dizendo...
como eu faço para pegar o valor ascii de uma letra... alias
eu preciso converter a string inteira... tem como?
24/09/2004
Mago M3rl1n
24/09/2004
Niflheim
ORD
uhmm blz intaum...
acho q o geito eh fazer isso convertendo caracter por caracter msm :?
entaum qual eh a função q retorna o tamanho de uma string???
24/09/2004
Gandalf.nho
24/09/2004
Niflheim
vou fazer esse esquema ai depois eu posto no forum de exemplo e mini programas...
tem isso aqui tbm? :lol:
vou dar uma olhada...
obrigado pela ajuda pessoal :wink:
28/09/2004
Niflheim
eu vi q tem uma seção dicas aqui..
pra quem eu mando para q postem???
28/09/2004
Dopi
O que acontece se você ultrapassar o 255.... A tabela ASC 2 acaba no 255.
Ex: ç = 135 Somando 150 temos 285 que não existe na tabela ASC2...
Uma vez fiz uma rotina so genero que invertia a posição dos 2 ultimos digitos da tabela ASC.
Ex: (A) 65 = 56 (8)), (ç) 135 = 153 (Ö), Assim não havia perigo de ´estouro´....
Mas essa rotina aqui faz um ´estrago´ bem maior...... usando xor.
///////////////////////////////////////////////////////// function StrCrypt(mStr, mChave: string): string; ///////////////////////////////////////////////////////// var i, TamanhoString, pos, PosLetra, TamanhoChave: Integer; begin Result := mStr; TamanhoString := Length(mStr); TamanhoChave := Length(mChave); for i := 1 to TamanhoString do begin pos := (i mod TamanhoChave); if pos = 0 then pos := TamanhoChave; posLetra := ord(Result[i]) xor ord(mChave[pos]); if posLetra = 0 then posLetra := ord(Result[i]); Result[i] := chr(posLetra); end; end ;
Use a mesma chave ´string´ para embaralhar e desembaralhar....
28/09/2004
Beppe
Os bits restantes seram ignorados, apenas os 8 bits mais significativos seram considerados no caractere.
Assert(Chr(AlgumInteiro) = Chr(AlgumInteiro and $ff));
28/09/2004
Niflheim
exato... isso eh feito de uma forma muito grotesca... ele simplesmente corta os bits sem acusar erro nem ecxeções...
eu tinha esquecido desses caracteres com acentuação... :?
gostei desse teu metodo Dopi... vou pensar em fazer alguma coisa desse tipo
valew :D
30/09/2004
Beppe