python移位加密,换位密码加密过程
本文主要介绍python密码术换位密码和换位解密换位加密教程。有需要的朋友可以借鉴一下,希望能有所帮助。祝你进步很大,早日升职加薪。
00-1010换位密码样本代码解释输出Pyperclip代码输出解释步骤解密换位密码代码描述输出
目录
换位密码是一种加密算法,将明文中的字母顺序重新排列,形成密文。在此过程中,不包括实际的纯文本字母。
换位密码
转置密码的一个简单例子是纵列转置密码,其中明文中的每个字符以指定的字母宽度水平书写。密码是竖着写的,这就产生了完全不同的密文。
考虑到纯文本hello world,让我们应用一个简单的列换位技术,如图所示
纯文本字符水平放置,密文以垂直格式创建为:holewdlo lr。现在,接收者必须使用相同的表将密文解密成明文。
示例
下面的程序代码演示了列转置技术3360的基本实现。
defsplit_len(序列,长度):
return[序列[i:i长度]foriinrange(0,len(seq),length)]
defencode(密钥,明文):
订单={
int(val):numfornum,valinenumerate(key)
}
密文=
for index sensored(order . keys()):
forpartinsplit_len(明文,len(密钥)):
try :密文=part[order[index]]
异常错误:
继续
返回密文
打印(编码( 3214 ,你好))
代码
使用split_len()函数,我们可以拆分纯文本字符,这些字符可以以列或行的格式放置。编码方法通过使用具有指定列数的密钥来帮助创建密文,并通过读取每列中的字符来打印密文。
解释
对于列转置技术的基本实现,代码给出了以下输出:
请注意,当使用转置技术时,密码学家观察到加密安全性的显著提高。他们还指出,用相同的转置密码重新加密密文可以提高安全性。
以上,我们已经了解了换位密码。接下来,我们将讨论它的加密。
输出
Python编程语言中pyperclip插件的主要用途是执行跨平台模块,用于将文本复制粘贴到剪贴板。您可以使用以下命令安装pythonpyperclip模块
pip安装pyperclip
如果需求已经存在于系统中,您可以看到下面的输出:
Pyperclip
用于加密转置密码的Python代码,其中pyperclip是主模块,如下:所示
importpyperclip
defmain():
m
yMessage = 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是主模块提供以下输出 :
解释
- 函数main()调用encryptMessage(),其中包括使用len函数拆分字符并以柱状格式迭代它们的过程.
- 主函数在结尾处初始化以获得适当的输出.
解密转置密码的步骤
代码
请注意以下代码以便更好地理解解密转置密码.密码为6的消息转置密码的密文被提取为Toners raiCntisippoh.
import math, pyperclipdef 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)
输出
解密转置密码的程序代码给出以下输出;
以上就是python密码学换位密码及换位解密转置加密教程的详细内容,更多关于python密码学换位解密转置加密的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。