Oma*_*bal 0 delphi encryption xor
我正在制作一个程序来实现xor加密,同时玩我的程序我输入了各种组合键,程序运行正常,直到我输入键值904932,这导致了'd'字符的省略,例如,如果我输入'我的名字是dexter,我讨厌我在编辑1中的愚蠢姐妹dede',加密和解密将使我的edit1文本:'嗨,我的名字是exter,我讨厌我的stupi姐姐ee'发生了什么?
procedure TForm2.Button1Click(Sender: TObject);
var
c:char;
i,key: integer;
begin
s := edit1.Text;
edit1.Text := #0;
key := strtoint(edit2.text);
key := key + 128;//i am adding 128 so that i dont get NULL char
for I := 1 to length(s) do {or 0 to lenght(s)? i dont know}
begin
c := s[i];
c := char(ord(c) xor key);
edit1.Text := edit1.Text + c;
end;
end;
Run Code Online (Sandbox Code Playgroud)
添加128无法解决您的问题.它只是移动它.
你的"xor密钥"只是你密钥的最后一个字节,在904932的情况下是$ E4.$ E4 + 128将被舍入(即-256)到字节值100,这是"d"的ASCII值.这就是你的"d"消失的原因.
所以我想如果你想显示加密文本,不应该使用这样的xor算法.我建议你做一些简单的排列算法.