我有2个函数,其中一个使用Ord()函数加密,另一个用于解密字符串。除扩展的Ascii代码外,它都很好用。
如果我使用字母ê(Ascii代码136),则Ord()函数将返回234,正如我期望的那样,它将返回136。
如果我对加密的字符串进行解密,则得到的结果与原始字符串的结果将有所不同,ê变成j。
有人可以帮忙解决这个问题吗?
procedure TForm1.btnEncryptClick(Sender: TObject);
var
sTempString : string;
iIndex,i: integer;
begin
sTempString := edtOriginalString.Text ;
for iIndex := 1 to length(sTempString) do
begin
i := ord(sTempString[iIndex]);
i := i shl 1;
sTempString[iIndex] := Char(i);
end;
edtEncryptedString.Text := sTempString;
end;
procedure TForm1.btnDecryptClick(Sender: TObject);
var
sTempString : string;
iIndex,i : integer;
begin
sTempString := edtEncryptedString.Text ;
for iIndex := 1 to length(sTempString) do
begin
i := ord(sTempString[iIndex]);
i := i shr 1;
sTempString[iIndex] := char(i);
end;
edtDecryptedString.Text := sTempString;
end;