Python练手----字符串的密钥加密
最近各种笔试加上leetcode刷题遇到很多加密题目,这些题目大同小异都是给出一个原始字符串和一个密钥。通过密钥和26个英文字母的对应关系对原文字符串进行加密。
例如:原字符串为“hello”,密钥为“2345678”,加密方式为:对字符串中的每一个字符,按照字母表依次采用密钥中的数字往前或者往后遍历若干个字母,其中偶数位上的字符往前遍历,奇数位上的字符往后遍历。
以上边给出的原字符串和密钥为例。第0个字符为h,对应密钥中数字为2,0认为是偶数位,那么按照字母表顺序从h往前遍历2个字母,得到新字母f;第1个字符为e,对应密钥中的数字为3,1为奇数位,那么按照字母表顺序往后遍历3个字母,得到新字符h。依次类推,加密后的密文为:“fhhqi”
接下来是代码实现。我的思路是首先将每一位上的字母转化为对应的ASCII码,然后对ASCII码进行加减值的操作,最后再转化回来。还有其他很多更好的方法,有很多大佬博主写的很好,这里就不再赘述了。以下是代码部分。
"""
函数解释:
Encryption()函数为加密算法的实现过程
ini_str为带加密的原文
key为加密所使用的密钥
加密规则为:
偶数位数上的按照密钥的数字按照字母表顺序往前移动,奇数位数上的按照密钥的数字按照字母表顺序往后移动
"""
def