Ver Mensaje Individual
  #4  
Antiguo 01-04-2017
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Es problema del Unicode. Prueba así:
Código Delphi [-]
function Encripta(sCadena: AnsiString): AnsiString;
var
    sRegreso : AnsiString;
    i, iTam : integer;
    szBuffer, szCadena : array[0..100] of AnsiChar;
begin
    sRegreso := '';
    iTam := Length(sCadena);
    StrPCopy(szBuffer,sCadena);
    for i:=0 to iTam - 1 do
        szCadena[i] := AnsiChar(Ord(szBuffer[i])+iTam);
    szCadena[iTam] := szBuffer[iTam];
    sRegreso := StrPas(szCadena);
    result := sRegreso;
end;


function DesEncripta(sCadena:AnsiString):AnsiString;
var
    sRegreso : AnsiString;
    i, iTam : integer;
    szBuffer, szCadena : array[0..100] of AnsiChar;
begin
    sRegreso := '';
    iTam := Length(sCadena);
    StrPCopy(szBuffer,sCadena);
    for i := 0 to iTam - 1 do
        szCadena[i] := AnsiChar(Ord(szBuffer[i])-iTam);
    szCadena[iTam] := szBuffer[iTam];
    sRegreso := StrPas(szCadena);
    result := sRegreso;
end;

Esto funciona igual en delphi7 pero en las versiones de delphi que priorizan el unicode, fuerza a usar AnsiChar con lo que los resultados de la encriptación son idénticos a como si usaras delphi7

Saludos.
Responder Con Cita