题目

某加密算法的明文和密钥均由英文字母组成,且密钥循环使用,其加密规则如下: ①明文字符与对应密钥的ASCII码转化为二进制后求异或(对应位相同时结果为0,对应位不同时结果为 1,如二进制1001与二进制1100的异或值为0101),并将异或结果转换为十进制p; ②如果处在奇数位,则将明文字符循环后移p个位置,否则将明文前移p个位置。移动过程中保持大小写不变。 最后把所得到的字符连接起来就是密文。 例如,密钥是“abc”,明文“d”的加密过程是:字符“d”的ASCII码表示为二进制是1100100,密钥“a”的ASCII码表示为二进制是1100001,两数进行异或结果是:0000101,转化为十进制为5,因为是第1个位置,所以把明文后移5个位置,则密文是“i”。 该加密过程使用VB来实现。具体功能设计如下:在Text1中输入明文,Text2中输入密钥,单击“开始加密”按钮Command1后将密文显示在Text3中,界面设计如图所示。 请回答以下问题: (1) 如果密钥为“bc”,字符“d”加密后的密文为:(字母“a”的 ASCII 码为97) (2) 请完善以下程序代码。 Private Sub Command1_Click()   Dim s As String, sn As String   Dim i As Integer, t As Integer, u As Integer   Dim p As Integer, g As Integer   sn = ""   For i = 1 To Len(Text1.Text)     t = Asc(Mid(Text1.Text, i, 1))     If t >= Asc("a") Then       g = Asc("a")     Else       g = Asc("A")     End If     u = Asc(Mid(Text2.Text, (i - 1) Mod Len(Text2.Text) + 1, 1))     p =     t = t - g     If i Mod 2 = 1 Then       t = (t + p) Mod 26     Else       t =     End If     sn = sn + Chr(t + g)   Next i   Text3.Text = sn End Sub Function txor(x As Integer, y As Integer) As Integer    'x、y求异或并返回十进制   Dim a As Integer, b As Integer, r As Integer, i As Integer   a = x: b = y   r = 1   For i = 1 To 7     If a Mod 2 <> b Mod 2 Then     a = a \ 2     b = b \ 2     r = r * 2   Next   i End Function 答案: 【1】j 【1】txor(t,u)Mod26或txor(u,t)Mod 26【2】(t-p+26)Mod 26【3】txor=txor+r
信息技术 试题推荐
最近更新