我不会Delphi,哪位兄弟能帮我翻译成C#或VB或VB.net

liujiayu10 2008-11-24 08:53:14
TMP_STRINGLIST.TEXT由文本读出
TMP_STRINGLIST.text := Cl_crypt32.cl_decrypt(trim(TMP_STRINGLIST.text))


const
StartKey = 956; {Start default key}
MultKey = 58645; {Mult default key}
AddKey = 28564; {Add default key}

function cl_decrypt(s:AnsiString):AnsiString;
var
cl_StartKey, cl_Multkey, cl_AddKey:word;
begin
cl_StartKey:=strtoint(decrypt(cl_bytetocharstr(copy(s, 1, 9)),StartKey,MultKey,AddKey));
cl_MultKey:=strtoint(decrypt(cl_bytetocharstr(copy(s, 10, 15)),StartKey,MultKey,AddKey));
cl_AddKey:=strtoint(decrypt(cl_bytetocharstr(copy(s, 25, 15)),StartKey,MultKey,AddKey));
result:=decrypt(cl_bytetocharstr(copy(s, 40, length(s)-39)),cl_StartKey,cl_MultKey,cl_AddKey);
end;

function Decrypt(const InString:AnsiString; StartKey,MultKey,AddKey:word): AnsiString;
var
I : word;
begin
Result := '';
for I := 1 to Length(InString) do
begin
Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
StartKey := (Byte(InString[I]) + StartKey) * MultKey + AddKey;
end;
end;
...全文
60 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
僵哥 2008-11-24
  • 打赏
  • 举报
回复
TMP_STRINGLIST.TEXT由文本读出
TMP_STRINGLIST.text = Cl_crypt32.cl_decrypt(trim(TMP_STRINGLIST.text)) 'TMP_STRINGLIST这里可以当是一个TextBox,Cl_crypt32是一个加解密函数定义单元


const StartKey as Integer = 956 '{Start default key}
const MultKey as Integer = -6891 '58645 '{Mult default key}
const AddKey as Integer = 28564 ' {Add default key}

function cl_decrypt(s as String) as String
dim cl_StartKey as Integer, cl_Multkey as Integer, cl_AddKey as integer
cl_StartKey = decrypt(cl_bytetocharstr(mid(s, 1, 9)),StartKey,MultKey,AddKey)
cl_MultKey = decrypt(cl_bytetocharstr(mid(s, 10, 15)),StartKey,MultKey,AddKey)
cl_AddKey = decrypt(cl_bytetocharstr(mid(s, 25, 15)),StartKey,MultKey,AddKey)
cl_decrypt = decrypt(cl_bytetocharstr(mid(s, 40, len(s)-39)),cl_StartKey,cl_MultKey,cl_AddKey)
end function

function Decrypt(byval InString As String, StartKey as Integer,MultKey as Integer,AddKey As Integer) As String

dim I as Integer

Decrypt = ""
for I = 0 to Len(InString)-1
Decrypt = Decrypt & CHR(asc(Mid(InString,I,1)) xor (StartKey \ 256))
StartKey = (asc(Mid(InString,I,1)) + StartKey) * MultKey + AddKey;
Next I
end function

缺少函数:cl_bytetocharstr
另外,对于字符串的处理品,比如比如Len,Mid,ASC之类的,对于多字节字符比如中文的处理,可能需要做个转换(学VB的应该明白的^_^)

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧