为什么每次移位后得到的字符串值不一样,怎么解决!(50分)

  • 主题发起人 wshiangdl
  • 开始时间
W

wshiangdl

Unregistered / Unconfirmed
GUEST, unregistred user!
又有问题出来了!!
aa:array[0..10] of char;
s:string;
i:integer;
strcopy(aa,s);
for i:=0 to length(s)-1 do
aa:=chr(ord(aa shl 4));
s:=strpas(aa);
而且在sql server 中设置了一字段 rd (char类型,宽度100),请问
若把移位操作后的s给字段赋值,为什么每次都不一样(做登录口令加密)!
 
const
C1 = 52845;
C2 = 22719;

function Encrypt(const S: String; Key: Word): String;
var
I: byte;
midStr : string;
begin
setlength(midStr,length(S));
for I := 1 to Length(S) do begin
midStr := char(byte(S) xor (Key shr 8));
Key := (byte(midStr) + Key) * C1 + C2;
end;
Result := midStr;
end;

function Decrypt(const S: String; Key: Word): String;
var
I: byte;
midStr : string;
begin
// Result[0] := S[0];
setLength(midStr,length(S));
for I := 1 to Length(S) do begin
midStr := char(byte(S) xor (Key shr 8));
Key := (byte(S) + Key) * C1 + C2;
end;
Result := midStr;
end;
 
但是你提供加密后的字段在保存进SQL SERVER 7.0的一char类型字段中,发生了变化!
或者说加密后的字符串中存在“?*”之类的,出现提示错误“unclosed quation....”
 
顶部