python换位密码如何实现,使用了什么方法
Admin 2022-08-25 群英技术资讯 969 次浏览
在这篇文章中,我们来学习一下“python换位密码如何实现,使用了什么方法”的相关知识,下文有详细的讲解,易于大家学习和理解,有需要的朋友可以借鉴参考,下面就请大家跟着小编的思路一起来学习一下吧。Transposition Cipher是一种加密算法,其中明文中的字母顺序被重新排列以形成密文.在此过程中,不包括实际的纯文本字母.
转置密码的一个简单示例是柱状转置密码其中纯文本中的每个字符都是水平写入的,具有指定的字母宽度.密码是垂直写入的,它创建了一个完全不同的密文.
考虑纯文本 hello world ,让我们应用简单的柱状转置技术,如图所示在

纯文本字符水平放置,密文以垂直格式创建为:holewdlo lr.现在,接收方必须使用同一个表将密文解密为纯文本.
以下程序代码演示了柱状转置技术的基本实现 :
def split_len(seq, length):
return [seq[i:i + length] for i in range(0, len(seq), length)]
def encode(key, plaintext):
order = {
int(val): num for num, val in enumerate(key)
}
ciphertext = ''
for index in sorted(order.keys()):
for part in split_len(plaintext, len(key)):
try:ciphertext += part[order[index]]
except IndexError:
continue
return ciphertext
print(encode('3214', 'HELLO'))
程序代码对于柱状转置技术的基本实现,给出以下输出 :

注意 : 密码分析者观察到当进行转座技术时加密安全性的显着改善.他们还指出,使用相同的转置密码重新加密密文可以提高安全性.
以上,我们了解了Transposition Cipher.下面,我们将讨论它的加密.
Python编程语言中 pyperclip 插件的主要用法是执行跨平台模块,用于将文本复制和粘贴到剪贴板.您可以使用如下所示的命令安装python pyperclip 模块
pip install pyperclip
如果系统中已存在该要求,您可以看到以下输出 :

用于加密转置密码的python代码,其中pyperclip是主要模块,如下所示 :
import pyperclip
def main():
myMessage = 'Transposition Cipher'
myKey = 10
ciphertext = encryptMessage(myKey, myMessage)
print("Cipher Text is")
print(ciphertext + '|')
pyperclip.copy(ciphertext)
def encryptMessage(key, message):
ciphertext = [''] * key
for col in range(key):
position = col
while position < len(message):
ciphertext[col] += message[position]
position += key
return ''.join(ciphertext) #Cipher text
if __name__ == '__main__':
main()
用于加密转置密码的程序代码,其中 pyperclip 是主模块提供以下输出 :

请注意以下代码以便更好地理解解密转置密码.密码为 6 的消息转置密码的密文被提取为 Toners raiCntisippoh.
import math, pyperclip
def main():
myMessage= 'Toners raiCntisippoh'
myKey = 6
plaintext = decryptMessage(myKey, myMessage)
print("The plain text is")
print('Transposition Cipher')
def decryptMessage(key, message):
numOfColumns = math.ceil(len(message) / key)
numOfRows = key
numOfShadedBoxes = (numOfColumns * numOfRows) - len(message)
plaintext = float('') * numOfColumns
col = 0
row = 0
for symbol in message:
plaintext[col] += symbol
col += 1
if (col == numOfColumns) or (col == numOfColumns - 1 and row >= numOfRows - numOfShadedBoxes):
col = 0 row += 1 return ''.join(plaintext)
if __name__ == '__main__':
main()
密文和提到的密钥是作为输入参数的两个值,用于解码或解密通过以列格式放置字符并以水平方式读取它们的反向技术密文.
您可以以列格式放置字母,然后使用以下部分将它们组合或连接在一起代码 :
for symbol in message: plaintext[col] += symbol col += 1 if (col == numOfColumns) or (col == numOfColumns - 1 and row >= numOfRows - numOfShadedBoxes): col = 0 row += 1 return ''.join(plaintext)
解密转置密码的程序代码给出以下输出;

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了pytorch_detach 切断网络反传方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
本章节主要说明Python的运算符。Python 语言支持以下类型的运算符:算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符、运算符优先级_
python能代替JavaScript;可以利用Pyjamas实现Python代替JavaScript,Pyjamas是一种Python的ajax开发框架,可以用于代替HTML和JavaScript编写网络程序,可以重复使用和导入类和模块,并且AJAX库还可以
默认情况下pytest测试用例的执行顺序是先按照外层后内层(目录下的文件),同层级的包或文件、根据名称、按照ascii码升序执行,文件内的用例根据先后顺序执行,这篇文章主要给大家介绍了关于pytest多文件执行顺序控制的相关资料,需要的朋友可以参考下
本文主要介绍了python实现自动抢课脚本的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008