胖蔡说技术
随便扯扯

Python 实现换位加密法加密

换位加密法是由命名、密钥实现重新排列明文中字母位置的加密法,是一个较为简单的加密方法。其加密过程如下:

  1. 计算加密明文的字符个数。
  2. 画一行个数等于密钥的格子。(比如说,密钥是12,各自就是12个)。
  3. 从左到右开始填充格子,每个格子填一个字符。
  4. 当你用完格子还有字符剩下时,再加一行格子。
  5. 把最后一行剩下不用的格子涂成灰色。
  6. 从最上角开始往下写出字符。当你到达这一行的底部后,移到后边那一列。跳过任何灰色的格子。这就是密文。

案例演示

如下,通过一个案例来演示下如何实现换位加密。

加密信息

加密明文:Common sense is not so common.

密钥:8

加密过程

1、 画一行个数等于密钥的格子

2、从左到右开始填充格子,每个格子填一个字符,当你用完格子还有字符剩下时,再加一行格子。

Commons
enseis
notsoc
ommon.[空格][空格]

3、从左到右按列生成新的字符【最后空格跳过】,得到结果:

Cenoonommstmme oo snnio. s s c

实现

如下为python实现换位加密法的源码。

# transpositionEncrypt.py
import pyperclip

def main():
    myMessage = 'Common sense is not so common.'
    myKey = 8
    
    ciphertext = encryptMessage(myKey,myMessage)
    print(ciphertext + '|')


def encryptMessage(key, message):
    ciphertext = [''] * key
    
    for col in range(key):
        pointer = col

        while pointer < len(message):
            ciphertext[col] += message[pointer]

            pointer += key
    return ''.join(ciphertext)


if __name__ == '__main__':
    main()
赞(0) 打赏
转载请附上原文出处链接:胖蔡说技术 » Python 实现换位加密法加密
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏