周五喝茶时间,大家在群里聊天,说到如何在发送点自己群里才懂得秘语,也就是整点密码,给大家的生活里添加点乐子,于是说起来写个加密解密的小程序,虽然网上有很多列表加密的程序了,自己写的这个纯粹用于在聊天时只能用拼音表示的某些词组或单词。
写这个小程序,主要也是为了实践一下之前学的知识,加深记忆,写的不好的,请大家多指点一下
主要用的知识点:
(1)if条件语句的使用
(2)for循环遍历语句的使用
(3)字典的相关知识点
(4)列表的相关知识点
思维逻辑
一开始,对加密解密算法的想法很简单,简单到导图就没几行,下面展示的是一开始的思维导图:
下面对每一步进行详细:
输入的细化
首先我们想到,在python中,输入的类型时str类型,也就是字符串类型,但是我们需要对每一位的字母进行加密,我先想到的是列表的方式,毕竟列表的调用方便一点(这个也是可以用字符串直接写的,我学艺不精,写完才百度了。是在下太菜了)。另外,考虑到加密解密过程中,考虑到汉子的加密解密太麻烦了(其实也可以利用汉字的ASCII编码进行加密解密,这是我写这个的时候才想到的),不如用字母,毕竟大家拼个拼音方便点。同时大小写字母不影响加密解密,所以这里又将所有的字母转换成小写的方式。但是有的时候大家还会在其中手抖的加入空格,在此基础上,我又添加了去掉空格的这一个想法。于是就有了下面的思维图:
加密解密的细化
这个地方,我首先想到的是如何确定是加密还是解密,所以在输入的时候要给出系统的提示,帮助判断加密或者解密的过程。之后我们需要一个简单的密码表,确定密码的对应关系,这里采用的是将英文字母左移19位的方式形成对应关系,也就是如下的两个密码表:
pj = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
pl = ['t','u','v','w','x'