'表1的后8位依次加0至7,然后再分别平方,累加后存在ebx中 For n = 1 To 8 ebx = ebx + (Ebp1(n) + Ebp1(n + 8) + n - 1) * (Ebp1(n) + Ebp1(n + 8) + n - 1) Next n
CreatEbp2 '生成表2
'利用表1和表2,根据下列算式得出注册码 For n = 1 To 16 al = (((n * n + Ebp1(n)) * ebx) And &HFF) + Ebp2(n) al = al Mod &H1A Sn(n) = al + &H41 StrSn = StrSn + Chr(Sn(n)) Next n End If
'去掉用户号中的"-"号,形成一个16个元素的字符串 For i = 1 To &H13 If Mid(strUserNum, i, 1) <> "-" Then j = j + 1 intTemp(j) = Asc(Mid(strUserNum, i, 1)) '程序中是用的字符的ASCII码来做运算的 End If '这里就直接把用户号转成ASCII Next i
For i = 1 To 4 '用户号的前四位与“SC30”的ASCII分别相加 intTemp(i) = intTemp(i) + intEdi(i - 1) Next i
j = 0 For i = 1 To 16 Step 2 '把此时的用户号的奇数位存在表1的前8位中