Função de Criptografia? A..Z, 0..9
Boa Dia!
Eu estou a procura de um função de criptografia/descriptografia que me retorne apenas caracteres de A..Z ou 0..9
E que me retorne o mesmo número de caracteres da string que será passada para a função, assim por exemplo:
Senha:=Cript(´SENHA´) ->>>> Senha = ´ABCDE´
Se alguém puder me ajudar
Atenciosamente
Luís Erucci
Eu estou a procura de um função de criptografia/descriptografia que me retorne apenas caracteres de A..Z ou 0..9
E que me retorne o mesmo número de caracteres da string que será passada para a função, assim por exemplo:
Senha:=Cript(´SENHA´) ->>>> Senha = ´ABCDE´
Se alguém puder me ajudar
Atenciosamente
Luís Erucci
Erucci
Curtidas 0
Respostas
Edilcimar
14/01/2006
Qualquer criptografia depende de mudança do caracter original para outro, vamos supor que vc crie uma criptografia simples, pega um caracter qualquer e soma 1 ao seu valor, se o valor é 1 ele transforma para 2, se é a ele transforma para b, aí eu pergunta se for z, você transforma em que? Vamos supor que o z vc transforme em x (caracter -1), e depois na hora de descriptografar, o x veio do z (-1) ou veio do x(+1)?
GOSTEI 0
Erucci
14/01/2006
Bem, o Z poderia continuar sendo Z... ou algo assim, eu só precisava de uma função simples mesmo.... mas que fosse útil e funcionasse... eu posso fazer uma aqui... mas queria ver se alguém teria alguma idéia....
GOSTEI 0
Aasn
14/01/2006
Fala garoto!
function Crypt(Action, Src: String): String; label Fim; var KeyLen : Integer; KeyPos : Integer; OffSet : Integer; Dest, Key : String; SrcPos : Integer; SrcAsc : Integer; TmpSrcAsc : Integer; Range : Integer; begin if (Src = ´´) Then begin Result:= ´´; Goto Fim; end; Key := ´YUQL23KL23DF90WI5E1JAS467NMCXXL6JAOAUWWMCL0AOMM4A4VZYW9KHJUI2347EJHJKDF3424SKL K3LAKDJSL9RTIKJ´; // ou apenas Key := ´ABCDEF´; Dest := ´´; KeyLen := Length(Key); KeyPos := 0; SrcPos := 0; SrcAsc := 0; Range := 256; if (Action = UpperCase(´C´)) then begin Randomize; OffSet := Random(Range); Dest := Format(´¬1.2x´,[OffSet]); for SrcPos := 1 to Length(Src) do begin Application.ProcessMessages; SrcAsc := (Ord(Src[SrcPos]) + OffSet) Mod 255; if KeyPos < KeyLen then KeyPos := KeyPos + 1 else KeyPos := 1; SrcAsc := SrcAsc Xor Ord(Key[KeyPos]); Dest := Dest + Format(´¬1.2x´,[SrcAsc]); OffSet := SrcAsc; end; end Else if (Action = UpperCase(´D´)) then begin OffSet := StrToInt(´$´+ copy(Src,1,2)); SrcPos := 3; repeat SrcAsc := StrToInt(´$´+ copy(Src,SrcPos,2)); if (KeyPos < KeyLen) Then KeyPos := KeyPos + 1 else KeyPos := 1; TmpSrcAsc := SrcAsc Xor Ord(Key[KeyPos]); if TmpSrcAsc <= OffSet then TmpSrcAsc := 255 + TmpSrcAsc - OffSet else TmpSrcAsc := TmpSrcAsc - OffSet; Dest := Dest + Chr(TmpSrcAsc); OffSet := SrcAsc; SrcPos := SrcPos + 2; until (SrcPos >= Length(Src)); end; Result:= Dest; Fim: end;
GOSTEI 0
Dart
14/01/2006
AASN esse eh boa mas eh grande
Erucci tenta essa
Erucci tenta essa
function Criptografia(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;
GOSTEI 0
Dart
14/01/2006
AASN esse eh boa mas eh grande
Erucci tenta essa [quote:98876aab59]
A função Criptografia pode ser usada para criptografar a senha acesso ao sistema. Ela é usada nos dois sentidos, para criptografar e descriptografar, desde que seja usada a mesma chave nas duas operações. ´mStr´ é a String que vai ser criptografada e ´mChave´ é a String que sera usada como base para fazer a criptografia.
function Criptografia(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;
[/quote:98876aab59]GOSTEI 0
Erucci
14/01/2006
Muito obrigado pela atenção de vocês, porém minha dúvida não foi resolvida.
Eu já possuía essas 2 funções de criptografia, a primeira retorna um número grande de caracteres, sendo que eu preciso indicar uma string de 8 caracteres e a criptografia me retornar outra string com também 8 caracteres.
A segunda rotina não me traz apenas os caracteres de A..Z ou 0..9, sendo que eu preciso passar esse código via telefone.
Se alguém tiver mais alguma para me ajudar
Atenciosamente
Luís Erucci
Eu já possuía essas 2 funções de criptografia, a primeira retorna um número grande de caracteres, sendo que eu preciso indicar uma string de 8 caracteres e a criptografia me retornar outra string com também 8 caracteres.
A segunda rotina não me traz apenas os caracteres de A..Z ou 0..9, sendo que eu preciso passar esse código via telefone.
Se alguém tiver mais alguma para me ajudar
Atenciosamente
Luís Erucci
GOSTEI 0