如何算出注册码

dldwsyy 2009-09-26 03:58:17
string matrix[10]
long ll
string ls = ""
long ll_i
long ll_len
string ls_res
string ls_arr[100]
string ls_arrstr
string ls_sec1
string ls_sec2
string ls_sec3
string ls_sec4
string ls_sec5


matrix[1] = "N"
matrix[2] = "T"
matrix[3] = "B"
matrix[4] = "e"
matrix[5] = "s"
matrix[6] = "t"
matrix[7] = "S"
matrix[8] = "o"
matrix[9] = "f"
matrix[10] = "t"
ll = long(string(getcpuid()))

if false then
ls = string(gl_limitunitnum) + string(gl_limitathletenum) + reverse(string(abs(long(ll))))
else

for ll_i = 1 to integer(len(string(ll)) / 2)
ls = ls + right(string(long(right(left(string(ll),ll_i),1)) * long(left(right(string(ll),ll_i),1))),1)
next

for ll_i = len(ls) to 6
ls = ls + left(right(string(ll),ll_i - len(ls)),1)
next

for ll_i = len(ls) to 6 step -1
ls = left(ls,len(ls) - 1)
next

for ll_i = 1 to 3
ls = ls + string(long(right(string(ll),ll_i * 2 - 1)) * (long(right(string(ll),ll_i * 2 - 1)) + long(right(string(ll),ll_i * 2))))
next

for ll_i = 1 to 3
ls = ls + left(right(string(ll),ll_i),1)
next

end if

for ll_len = 1 to len(ls)
ls_res = ls_res + matrix[mod(long(mid(ls,ll_len,1)) * (gl_limitunitnum + gl_limitathletenum + 26 + 26 + 25),10) + 1]
next

for ll_len = 1 to len(ls_res) * 2 step 2

if ll_len < 22 then

if ll_len = 1 then
ls_arr[ll_len] = char(mod(asc(mid(ls_res,(ll_len + 1) / 2,1)) + asc("Z"),26) + 65)
end if

if ll_len = 3 then
ls_arr[ll_len] = char(mod(asc(mid(ls_res,(ll_len + 1) / 2,1)) + asc("H"),26) + 65)
end if

if ll_len = 5 then
ls_arr[ll_len] = char(mod(asc(mid(ls_res,(ll_len + 1) / 2,1)) + asc("a"),26) + 65)
end if

if ll_len = 7 then
ls_arr[ll_len] = char(mod(asc(mid(ls_res,(ll_len + 1) / 2,1)) + asc("n"),26) + 65)
end if

if ll_len = 9 then
ls_arr[ll_len] = char(mod(asc(mid(ls_res,(ll_len + 1) / 2,1)) + asc("g"),26) + 65)
end if

if ll_len = 11 then
ls_arr[ll_len] = char(mod(asc(mid(ls_res,(ll_len + 1) / 2,1)) + asc("Z"),26) + 65)
end if

if ll_len = 13 then
ls_arr[ll_len] = char(mod(asc(mid(ls_res,(ll_len + 1) / 2,1)) + asc("H"),26) + 65)
end if

if ll_len = 15 then
ls_arr[ll_len] = char(mod(asc(mid(ls_res,(ll_len + 1) / 2,1)) + asc("e"),26) + 65)
end if

if ll_len = 17 then
ls_arr[ll_len] = char(mod(asc(mid(ls_res,(ll_len + 1) / 2,1)) + asc("n"),26) + 65)
end if

if ll_len = 19 then
ls_arr[ll_len] = char(mod(asc(mid(ls_res,(ll_len + 1) / 2,1)) + asc("Y"),26) + 65)
end if

if ll_len = 21 then
ls_arr[ll_len] = char(mod(asc(mid(ls_res,(ll_len - 1) / 2,1)) + asc("u"),26) + 65)
end if

else
ls_arr[ll_len] = mid(ls_res,(ll_len + 1) / 2,1)
end if

next

for ll_len = 2 to (len(ls_res) - 1) * 2 step 2
ls_arr[ll_len] = string(mod(asc(ls_arr[ll_len - 1]) ^ 2 + asc(ls_arr[ll_len + 1]),10))
next

ls_arr[1] = "B"
ls_arr[3] = "S"

for ll_len = 1 to 100
ls_arrstr = ls_arrstr + ls_arr[ll_len]
next

ls_sec1 = upper(left(ls_arrstr,5))
ls_sec2 = upper(mid(ls_arrstr,7,5))
ls_sec3 = upper(mid(ls_arrstr,13,5))
ls_sec4 = upper(mid(ls_arrstr,19,5))
ls_sec5 = upper(mid(ls_arrstr,15,5))
return (ls_sec1 + "-" + ls_sec2 + "-" + ls_sec3 + "-" + ls_sec4 + "-" + ls_sec5)


机器序列号:F8E9CACA0C113F62E15B 还请各位高手帮忙啊
...全文
257 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jieyong521 2009-11-04
  • 打赏
  • 举报
回复
节分
percy_620515 2009-11-04
  • 打赏
  • 举报
回复
接分
tiancx82 2009-10-30
  • 打赏
  • 举报
回复
lao_bulls 2009-10-02
  • 打赏
  • 举报
回复
mark
lmr123 2009-09-28
  • 打赏
  • 举报
回复
B4S9T-G1Z7M-U3X5G-L4N-X5G7L

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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