参加了人工智能Python编程特训营这门课程,在这里记录一下自己的学习过程。

加密技术的基本分类对称式加密:加密和解密使用同一个密钥。信息接收双方都需事先知道密钥和加密解密算法且密钥是相同的,之后便是对数据进行加密解密了。常见的有DES,AES。

2. 非对称式加密:加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。常用的有RSA。发送双方A,B事先均生成一堆密匙

A将自己的公有密匙发送给B,B将自己的公有密匙发送给A

如果A要给B发送消息,则需要用B的公有密匙进行消息加密

A将加密后的消息发送给B

B接收到消息后再用自己的私有密匙进行消息解密

项目实战目标:实现一个加密解密程序。

2. 要求:对于一段消息中的中文和英文进行加密和解密,消息中的数字和标点符号不用处理。其中,加密结果是中文和英文对应的ASCII码值,并且使用“|”进行分隔。

3. 加密:

def encrypt(ori):

"""加密规则,获取中文和英文对应的ASCII码数字,中间用"|"分割:param ori: 明文:return result: 密文"""

result = "" #密文

for char in ori:

value = ord(char) #将明文转换为对应的ASCII码

if 65<= value <= 90 or 97<= value <= 122 or 19968 <= value <= 40875: #如果是英文或中文

result += str(value) + "|"

else:

result += char + "|"

return result

4. 解密:

def dencrypt(ori):

"""解密:param ori: 密文:return result: 明文"""

#将密文以"|"为分隔符进行拆解,并且去掉最后多出来的部分

ori_list = ori.split("|")

ori_list.remove("")

result = "" #明文

for char in ori_list:

try:

value = int(char) #char是数字或者ASCII码值

if 65 <= value <= 90 or 97 <= value <= 122 or 19968 <= value <= 40875: # char是英文或中文

result += chr(value)

else: #char为数字

result += char

except: #char为符号

result += char

return result

5. 实验结果:

#输入一段话:

message = input("Please input your message>>") #哈哈,123haha!>>

#加密解密

encry_result = encrypt(message)

print(encry_result) #21704|21704|,|1|2|3|104|97|104|97|!|>|>|

dencry_result = dencrypt(encry_result)

print(dencry_result) #哈哈,123haha!>>

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐