(1)以字节为单位进行加密处理;
(2)将1个字节的8位二进制数分割成前4位与后4位两个二进制数;
(3)分别将上述两个4位二进制数转换为十进制数;
(4)将每个十进制数转换为1个加密字符,对应的“密码表”如下:
值(十进制) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
加密字符 | I | l | i | k | e | C | H | N | P | 0 | s | t | c | a | r | d |
小明按照上述方法,设计了一个字符串(仅包含ASCII字符)加密的VB程序,功能如下:单击“加密”按钮Commandl,程序依次将文本框Textl中每个字符的ASCII码值作为1个字节转换为两个加密字符,连接这些加密字符,最后在文本框Text2中输出加密结果。下表显示了字符串中一个字符的加密过程:
程序运行效果如图所示。
实现上述功能的VB程序如下:
(1)请在划线处填入合适代码。
Private Sub Command1_Click()
Dim n As Integer, s As String, i As Integer, ss As String
Dim a As Integer '存储加密前字符的ASCII码
Dim b1 As Integer, b2 As Integer '分别存储分割、转换后的两个十进制数
s = Text1.Text
①
For i = 1 To n
a = Asc(Mid(s, i, 1))
b1 =a \ 16
b2 =a Mod 16
ss = ss + Code2Char(b1) + Code2Char(b2)
Text2.Text = ss
Next i
End Sub
'十进制值转换为加密字符的函数
Function Code2Char(c As Integer) As String
Dim s As String
s = "IlikeCHNpostcard"
Code2Char = ②
End Function
(2)若将“密码表”中值为“0”对应的加密字符“I”改成“i”,加密后的密文可能无法解密,原因是
同类型试题
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