我想做一个加密的算法,就是两次的异或的那个算法,但是异或是二进制的运算,所以我
考虑要把字符直接转化成ASCII码表示,然后再异或一个值,加密就这样完成。解密的话,
就直接异或那个值。
现在我的问题是如何把一个字符型的值转化成二进制的ASCII码。
请各位大虾指点!!^0^
考虑要把字符直接转化成ASCII码表示,然后再异或一个值,加密就这样完成。解密的话,
就直接异或那个值。
现在我的问题是如何把一个字符型的值转化成二进制的ASCII码。
请各位大虾指点!!^0^
function pass(pstr:string):string;var str,str1:string;
i,j:integer;
begin
str:=pstr;
for i:=1 to length(str) do begin
//进行第一次变换
j:=(i*i*i mod (i+20))+(i*i mod (i+10))+i*2+1;
str1:=str1+chr(ord(str[i])+j); //第二次变换
j:=(i*i*i mod (i+10))+(i*i mod (i+20))+i*2+1;
str1:=str1+chr(ord(str[i])+j); end;
pass:=str1;
end;
S := 'abc';
Ord(S[1]) 就是'a'的Ascii码不过,你这个冲起量只能算变码
XOR 1101 1001
0101 0011
_____________
1000 1010
Decrypt:
XOR 1000 1010
0101 0011
--------------
1101 1001