请各位帮忙:十六进制的加密,解密问题求解(100分)

  • 主题发起人 主题发起人 philchan
  • 开始时间 开始时间
P

philchan

Unregistered / Unconfirmed
GUEST, unregistred user!
请各位帮忙:十六进制的加密,解密问题求解:
从COM1读进一串十六进制的字符串如:CA3132333435363741BBBBBDC3...OD
(十进制是:W1234567A本机 )现要求将COM1读出来的十六进制的,通过加密后,仍以
十六进制发送到COM2。
加密算法要求如下:
明文为:一串十六进制的字符(包括中文),密钥为一个七个字符长度的十六进制字符串
如(31323334353637),算法为每取出一个明文字节,就XOR一个密钥字节,从第一个开始,
如果密钥取完,则又从第一个开始取。
求加密函数和解密函数源码
 
type
TKey = array [1..7] of Byte;

procedure Encodes(var s: string; const Key: TKey;);
var
i, j: Integer;
KeyValue: Byte;
begin
j:=0;
for i:=1 to Length(s) do
begin
Inc(j);
if j>7 then
j:=1;
s:=Chr(Ord(s) xor Key[j])
end;
end;
解密跟加密一样.
加密后的字符串不一定是可见字符.
 
重复发贴
重复得分
 
接受答案了.
 
后退
顶部