我正在製作一個程序來實現xor加密,同時玩弄我的程序我輸入了各種組合鍵該程序完美運行,直到我輸入密鑰的值: 904932這引起了'd'字符的省略,例如,如果我在edit1中輸入'你好,我的名字是dexter,我討厭我的愚蠢妹妹dede',加密和解密將返回 使我的edit1文本:'你好我的名字是exter我恨我的stupi姐姐ee' 發生了什麼事?xor加密:將密鑰的設置值設置爲904932吃掉'd'
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;
使用鍵:= strtoint(edit2.text)和$ 7F + 128; - 它將解決ASCII字符串的NULL問題。 – kludg 2010-08-28 16:24:49