程序算法小结:
1.约定:用户名:name; 用户名长度:name_len; 固定码table:ABCDEFGHIJKLMNOPQRSTUVWXYZ;用户名每位的ASCII值相加结果,记为sum1;
2.计算中间码1:以用户名长度值作为循环次数
(((name[i] xor table[3i-1]+sum1*(i-1) XOR FFFFFFFF+14d+name_len*(i+3)*name[i])/10+30) xor ADAC)*(i+2)/10+30
3.计算中间码2: sum1*name_len/64+30
4.最终中间码:T+计算中间码1+"-"+计算中间码2
5.中间码还原为注册码:去掉最终中间码前的“T”,以剩下的位数作为循环值
(name[i] xor 2)/A +30
原代码语言:
.版本 2
.程序集 窗口程序集1
.子程序 _按钮1_被单击
.局部变量 name, 文本型
.局部变量 name_len, 整数型
.局部变量 sum, 长整数型
.局部变量 sum1, 文本型
.局部变量 sum2, 文本型
.局部变量 total, 整数型
.局部变量 i2, 整数型
.局部变量 i3, 整数型
.局部变量 i, 整数型
.局部变量 c1, 字节型
.局部变量 c2, 字节型
.局部变量 c, 字节型
.局部变量 c3, 字节型
.局部变量 table, 文本型
.局部变量 sn, 文本型
.局部变量 sn1, 文本型
.局部变量 yushu1, 长整数型
.局部变量 yushu2, 整数型
.局部变量 zjianma2, 整数型
.局部变量 zjianma, 文本型
.局部变量 zjianma1, 文本型
.局部变量 yushuH, 文本型
.局部变量 ma1, 文本型
.局部变量 a, 长整数型
.局部变量 b, 长整数型
.局部变量 zjianma_len, 整数型
' (((name[i] xor table[3i-1]+sum1*(i-1) XOR FFFFFFFF+14d+name_len*(i+3)*name[i])/10+30) xor ADAC)*(i+2)/10+30
table = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”
name = 编辑框1.内容
name_len = 取文本长度 (name)
.如果 (name_len ≥ 1)
.判断循环首 (i ≤ name_len) ' 用户名各ASCII值之和
c = 取代码 (name, i)
total = total + c
i = i + 1
.判断循环尾 ()
.判断循环首 (i2 ≤ name_len - 1) ' 计算中间注册码1
c1 = 取代码 (name, i2 + 1) ' name[i]
c2 = 取代码 (table, 3 × i2) ' table[3i-1]注意数组与E的区别
a = 位异或 (c1, c2) ' name[i] xor table[3i-1]
b = 位异或 (total × (i2 - 1), 4294967295) ' sum1*(i-1) XOR FFFFFFFF
c3 = (a + b + 333 + name_len × (i2 + 3) × c1) % 10 + 48
yushu2 = 位异或 (c3, 44460) × (i2 + 2) % 10 + 48
yushuH = 取十六进制文本 (yushu2)
ma1 = 取文本右边 (yushuH, 1)
zjianma1 = 到文本 (zjianma1) + 到文本 (ma1) ' 65006967
i2 = i2 + 1
.判断循环尾 ()
zjianma2 = total × name_len % 100 + 48 ' 68
zjianma = 到文本 (zjianma1) + “-” + 到文本 (zjianma2) ' 中间码
zjianma_len = 取文本长度 (zjianma) ' 中间码长度
.否则
信息框 (“请输入用户名”, 0, “友好提示”)
.如果结束
.判断循环首 (i3 < zjianma_len)
i3 = i3 + 1
c3 = 取代码 (zjianma, i3)
sum = 位异或 (c3, 32) % 10 + 48
sum1 = 取十六进制文本 (sum)
sum2 = 取文本右边 (sum1, 1)
sn = 到文本 (sn) + 到文本 (sum2)
.判断循环尾 ()
sn1 = “T” + sn ' T21662523324
编辑框2.内容 = sn1