字符串异或问题,如何写?(200分)

  • 主题发起人 主题发起人 bslhszy
  • 开始时间 开始时间
B

bslhszy

Unregistered / Unconfirmed
GUEST, unregistred user!
我想将一个中文字符串用简单的异或加密.
比如字符串为"注册码错误",异或 88 该怎么写.
 
function XORstr(s:string;Xorvalue:byte):string;
var
i:integer;
st:string;
begin
st:=s;
for I := 1 to length(st) do
begin
st:=chr(ord(st) xor Xorvalue);
end;
result:=st;
end;
列子:
procedure TForm1.Button1Click(Sender: TObject);
var
st:string;
begin
st:=edit1.Text;

memo1.Lines.Add(st);
st:=xorstr(st,88);
memo1.Lines.Add(st);
st:=xorstr(st,88);
memo1.Lines.Add(st);

end;
memo1输出结果如下:
注册码错误
忷旯毘斓柅
注册码错误
 
bmsr您好

我是想把字符串转换为16进制后得到异或的结果.

不好意思我没说明白.
 
你是要先变成16进制异或还是将异或的结果转成16进制的字符串,不管你用要求哪个,将bmsr的代码转化一下,在前面或后面用inttohex逐个字节转化一下不就行了。
 
多人接受答案了。
 
后退
顶部