1、
S,P : String
value : string[25]
i,Len : integer
value := S;P := '';Len := 24;
//将个字节值 * i后映射到A-Z可显示ASCII区间
for i:=1 to Len do
begin
if(ord(Value[i]) in [65..90]) then p:=p+value[i]
else p:=p+char(65 + (Word(Value[i]) * i) mod 26)2、
i,j,len:integer
value:string[25]
p:stringlen:=24
value:=s;p:=''
//将各字节值与0X58异或后左移4位并映射到1-9可现实ASCII码区间
for i:=1 to len do
begin
j:=1
p:=p+char(48+(((word(value[i] xor $A7) shl 4) + (j mod 5)) mod 10)
end
那位大神能把上面的代码用文字的方式给我解释解释?尤其是怎么映射到A-Z或者1-9的ASCII码区间那段,最好能把我把这两段代码改成C++的,多谢各位大神啊~~~
S,P : String
value : string[25]
i,Len : integer
value := S;P := '';Len := 24;
//将个字节值 * i后映射到A-Z可显示ASCII区间
for i:=1 to Len do
begin
if(ord(Value[i]) in [65..90]) then p:=p+value[i]
else p:=p+char(65 + (Word(Value[i]) * i) mod 26)2、
i,j,len:integer
value:string[25]
p:stringlen:=24
value:=s;p:=''
//将各字节值与0X58异或后左移4位并映射到1-9可现实ASCII码区间
for i:=1 to len do
begin
j:=1
p:=p+char(48+(((word(value[i] xor $A7) shl 4) + (j mod 5)) mod 10)
end
那位大神能把上面的代码用文字的方式给我解释解释?尤其是怎么映射到A-Z或者1-9的ASCII码区间那段,最好能把我把这两段代码改成C++的,多谢各位大神啊~~~
char转为字符mod 取模
xor 异或
看懂这些,应该懂了吧
如果这么写的话,用不了三天, 我自己都不认识了。for i:=1 to Len do // 循环从1-24
begin
if(ord(Value[i]) in [65..90]) then // 判断这个串中的某一个字节是否在 65-90(A-Z)中
p:=p+value[i] // 如果是,把这个字符追加到 变量P中
else
p:=p+char(65 + (Word(Value[i]) * i) mod 26) // 如果不是,则用这个当前这个字符的ASCII值乘上所在位置的顺号,再对26取余数,最后加上65后,变成一个字符追加到变量P中。(这是加密?)
如果不是加密的话,这么写的人脑子肯定有点问题,是不是和门有为亲密的接触。