①授权码由9位字符组成,前三位为日期的密文,最后1位为验证码;
②日期的最后1位数字k(若k的值为0,令k=10),加密成26个大字英语字母表该位置对应的字母。
③将26个大写英文字母向左移k(日期的最后1位数字)个位置,并将移出的k个字母依次连接到最后。例如当k=3时,形成如下表所示新的字母排列顺序:
位置 | 1 | 2 | 3 | 4 | …… | 23 | 24 | 25 | 26 |
字母 | D | E | F | G | …… | Z | A | B | C |
④日期的第1个数字至第7个数字的加密方法是:计算第i个位置上的数字与第i+1个位置的数字及位置i三者相加的和,在新的字母表中取出该数字和对应的字母,作为第i个位置上数字加密字符。
⑤计算日期的各个位置上数字之和sum,若和sum的值大于26,在新的英文字表中,sum Mod 26对应字母转换成小写字母,作为验证码,否则验证码为新的英文字母表中对应字母。
(1)根据上述加密算法,若输日期为“20000101”,则生成的注册码为__________________________。
(2)小张根据上述加密算法,设计了一个对应的解密程序,其VB代码如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim i As Integer, j As Integer, s As String, k As Integer
Dim mw As String, sum As Integer, t As Integer, t1 As Integer
strl="0123456789"s=Text1.Text
①_____
t=k:sum=t
s1=Mid(strl,t+1,1)
For i=7 To 1 Step-1
t1=Asc(Mid(s, i, 1))-64
j= ②_____
s1=Mid(strl1,t+1,1)+s1
sum=sum+t
Next i
mw=jm(k)
If sum>26 Then
sum=sum Mod 26
ch=Chr(Asc(Mid(mw, sun, 1))+32)
Else
ch=Mid(mw, sum, 1)
End If
If ch=Mid(s, 9, 1) Then Text2.Text=s1
Else Text2.Text="该系列号未能通过验证!"
End Sub
Function jm(t As Integer) As String
Dim i As Integer, p As Integer
If t=0 Then t=10
For i=1 To 26
p=(t+i-1) Mod 26③____
Next i
End Function
同类型试题
y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2
y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2