请帮我把这段代码转成javascript ( 积分: 50 )

  • 主题发起人 主题发起人 111delphi
  • 开始时间 开始时间
1

111delphi

Unregistered / Unconfirmed
GUEST, unregistred user!
请帮我把下面两个代码转成javascript,谢谢。
const
C1 = 52845;
C2 = 22719;
function Encrypt(const S: string;
Key: Word): string;
var
I: Integer;
begin
Result := S;
for I := 1 to Length(S)do
begin
Result := char(byte(S) xor (Key shr 8));
Key := (byte(Result) + Key) * C1 + C2;
end;
end;

function Decrypt(const S: string;
Key: Word): string;
var
I: Integer;
begin
Result := S;
for I := 1 to Length(S)do
begin
Result := char(byte(S) xor (Key shr 8));
Key := (byte(S) + Key) * C1 + C2;
end;
end;
 
请帮我把下面两个代码转成javascript,谢谢。
const
C1 = 52845;
C2 = 22719;
function Encrypt(const S: string;
Key: Word): string;
var
I: Integer;
begin
Result := S;
for I := 1 to Length(S)do
begin
Result := char(byte(S) xor (Key shr 8));
Key := (byte(Result) + Key) * C1 + C2;
end;
end;

function Decrypt(const S: string;
Key: Word): string;
var
I: Integer;
begin
Result := S;
for I := 1 to Length(S)do
begin
Result := char(byte(S) xor (Key shr 8));
Key := (byte(S) + Key) * C1 + C2;
end;
end;
 
没有测试过,粗略改的,如有问题,你自己可调整调整。
const C1 = 52845;
const C2 = 22719;
function Encrypt(S, Word){
var ret = S;

for(int I = 0;I<S.length();I++){
ret = char(byte(S) ^ (Key >>
8));
Key = (byte(ret) + Key) * C1 + C2;
}
return ret;
}
function Decrypt(S, Word){
var ret = S;

for(int I = 0;I<S.length();I++){
ret = char(byte(S) ^ (Key >>
8));
Key = (byte(S) + Key) * C1 + C2;
}
return ret;
}
 
不行呀,不会改。再顶
 
C1 = 52845;
C2 = 22719;
function Encrypt(S,Key)
{
var Result;
Result = S;
for (i in S.length()){
Result=Chr(Asc(S)^(Key>>8));
Key=(Asc(Result)+Key) * C1 + C2;
}
return Result;
}
function Decrypt(S,Key)
{
var Result=S;
for (i in S.length()){
Result=Chr(Asc(S)^(Key>>8));
Key := (Asc(S) + Key) * C1 + C2;
}
return Result;
}
对于JScript中的字符和整数的转化我还是不会的,Asc和Chr借助了VBScript函数。
 
C1 = 52845;
C2 = 22719;
function Encrypt(S, Word){
var ret = S;

for(int I = 0;I<S.length();I++){
ret = char(byte(S) ^ (Key >>
8));<---------还是通不过,提示这行缺少;号
Key = (byte(ret) + Key) * C1 + C2;
}
return ret;
}
function Decrypt(S, Word){
var ret = S;

for(int I = 0;I<S.length();I++){
ret = char(byte(S) ^ (Key >>
8));
Key = (byte(S) + Key) * C1 + C2;
}
return ret;
}
 
是少写了括号你自己不会加上去??
 
好象我也看错了,呵呵,其实char函数可以不用
 
不是少括号[:(]
 
我再顶一下,希望能够得到经过测试能用的,谢谢。
 
多人接受答案了。
 
后退
顶部