最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

VB_Python代码对照算法百题(003)

Python 少儿编程 1766浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

VB_Python代码对照算法百题(003)

VB代码

(2015年10月_浙江)17.某数据加密方法描述如下:

(1)以字节为单位进行加密处理;

(2)将1个字节的8位二进制数分割成前4位与后4位两个二进制数;

(3)分别将上述两个4位二进制数转换为十进制数;

(4)将每个十进制数转换为1个加密字符,对应的“密码表”如下:

值(十进制) 0 1 2 3 4 5 6 7 8 9 10
加密字符 I l i k e C H N P 0 s
值(十进制) 11 12 13 14 15
加密字符 t c a r d

小明按照上述方法,设计了一个字符串(仅包含ASCII字符)加密的VB程序,功能如下:单击“加密”按钮Commandl,程序依次将文本框Textl中每个字符的ASCII码值作为1个字节转换为两个加密字符,连接这些加密字符,最后在文本框Text2中输出加密结果。下表显示了字符串中一个字符的加密过程:

VB_Python代码对照算法百题(003)

程序运行效果如第17题图所示。

VB_Python代码对照算法百题(003)

实现上述功能的VB程序如下:

1)请在划线处填入合适代码。

Private SubCommand1_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)

Next i

Text2.Text = ss

End Sub

十进制值转换为加密字符的函数

Function Code2Char(cAs Integer) As String

Dim s As String

s = “IlikeCHNpostcard”

Code2Char =         ②               

End Function

(2)若将“密码表”中值为“0”对应的加密字符“I”改成“i”,加密后的密文可能无法解密,原因是                       。

参考答案:

(1)①n = Len(s)或 n = Len(Text1.Text)       ②Mid(s,c + 1, 1)

(2)加密字符i对应两个值0,2

Python代码:

def code2char(c):

    s = “IlikeCHNpostcard”

    return s[c]

 

s=input(‘请输入明文:n’)

n = len(s)

ss=”

for i in range(n):

    a=ord(s[i])

    b1=a//16

    b2=a%16

    ss=ss + code2char(b1) + code2char(b2)

print(‘密文为:’+ ss)

Python代码运行结果:

请输入明文:

This is an example!

密文为:CeHpHoNkiIHoNkiIHlHriIHCNpHlHaNIHcHCil

>>> 

 

您必须 登录 才能发表评论!