ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

移位密码及其python实现

2021-01-15 12:58:36  阅读:456  来源: 互联网

标签:26 python self mn list 密码 mv 移位


就当为CSDN这方面的python开源做点贡献哈哈哈

移位密码

  • 算法原理
    在这里插入图片描述

  • python代码
#移位密码
class ShiftCipher:
    global d
    d=dict(zip(''.join(chr(i) for i in range(97,123)),list(range(0,26))))#字母表
    def __init__(self,k:int):
        self.k=k;#k为移位数
        
def encrypt(self,m:str):#加密
    m=m.replace(' ','')
        #明文m,字符串形式
        mn=[]#储存明文模26余数
        for mv in m:mn.append(d[mv])
        for i in range(0,len(mn)):mn[i]=(mn[i]+self.k)%26#移位
        s=''
        for n in mn:s+=str(list(d.keys())[list(d.values()).index(n)])
        print('The ciphertext is:',s.upper())
            
    def decrypt(self,m:str):#解密
        #密文m,字符串形式
        m=m.lower()
        mn=[]#储存密文模26余数
        for mv in m:mn.append(d[mv])
        for i in range(0,len(mn)):mn[i]=(mn[i]-self.k)%26#逆移位
        s=''
        for n in mn:s+=str(list(d.keys())[list(d.values()).index(n)])
        print('The plaintext is:',s.upper()) 

  • 实现过程
    自定义移位密码位移数(5)加密一段英文(‘informationsecurityandcryptography’)并对得到的密文解密:
    在这里插入图片描述

标签:26,python,self,mn,list,密码,mv,移位
来源: https://blog.csdn.net/weixin_45181522/article/details/111869238

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有