胖蔡说技术
随便扯扯

Python 实现乘数加密法

乘数加密是简单代替密码的一种。乘数加密法脱胎于凯撒加密法,加密和解密符号设计把他们转换成数字,加上或者减去密钥,然后把新的数字转换回符号,当我们把加减密钥变成乘以密钥,就是乘法加密法。有关凯撒加密法可以看之前的文章《Python实现凯撒加解密》

加密过程

乘数加密法和凯撒加密法一样,需要提前知道加密的明文个数,且需要设置一个加密转换后的字母或者符号,一般是使用A-Z 26个字母。我们先来了解下,整个加密过程需要哪些数据:

  • 替代字母或符号:一般只使用包含大写字母的符号集A-Z
LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  • 加密密钥:加密密钥为一个大小大于0且小于明文长度的数字,假如设置明文长度为n,密钥为k:
0<k<n
  • 加密算法:假设当前明文为P,密钥为k,则获取密文算法 C(密文)= E(p) = (P * k) mod 26

代码实现


import pyperclip

message = "this is secret message
key =  13  # 加解密key

LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

translated = ""
message = message.upper()

for symbol in message:
    if symbol in LETTERS:
        num = LETTERS.find(symbol)
        num = (num * key)% 26 + 'A'
    else:
        translated =  translated + symbol

print(translated)   #输出加密结果
赞(1) 打赏
转载请附上原文出处链接:胖蔡说技术 » Python 实现乘数加密法
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏