维吉尼亚密码

维吉尼亚密码属于多表代换密码

其中A<-->0,B<-->1,...,Z<-->25,则每个密钥K相当于一个长度为m的字母串,称为密钥字。维吉尼亚密码一次加密m个明文字母。

示例:设m=6,密钥字为"CIPHER",对应数字串K=(2,8,15,7,4,17)。要加密明文为:thiscrypto,则
则相应的密文为:VPXZGIAXIV

解密时,使用相同的密钥字进行逆运算即可。

可以看出,维吉尼亚密码的密钥空间为26^m。

加密:

python 复制代码
Plaintext = 'THISCRYPTO'#字母需要大写
K = [2,8,15,7,4,17]

#print(K)#密钥

Ciphertext = ''
for i in range(len(Plaintext)):
    M_i = ord(Plaintext[i]) - 65 
    K_i = K[i%len(K)]
    C_i = (M_i+K_i)%26
    Ciphertext += chr(C_i+ 65) 
print(Ciphertext)

解密:

python 复制代码
Ciphertext = 'VPXZGIAXIV'   
K = [2,8,15,7,4,17]

Plaintext = ''
for i in range(len(Ciphertext)):
    C_i = ord(Ciphertext[i]) -65 
    K_i = K[i%len(K)]
    M_i = (C_i - K_i)%26
    Plaintext += chr(M_i+ 65) 
print(Plaintext)
相关推荐
vx_dmxq21110 小时前
【微信小程序学习交流平台】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·python·mysql·微信小程序·小程序·idea
无垠的广袤10 小时前
【工业树莓派 CM0 NANO 单板计算机】本地部署 EMQX
linux·python·嵌入式硬件·物联网·树莓派·emqx·工业物联网
艾莉丝努力练剑11 小时前
【Python基础:语法第一课】Python 基础语法详解:变量、类型、动态特性与运算符实战,构建完整的编程基础认知体系
大数据·人工智能·爬虫·python·pycharm·编辑器
gCode Teacher 格码致知12 小时前
Python基础教学:如何拼接字符串?-由Deepseek产生
python
还债大湿兄12 小时前
阿里通义千问调用图像大模型生成轮动漫风格 python调用
开发语言·前端·python
blank@l12 小时前
python测开小工具--日志查询分析工具
python·python接口自动化测试基础·python测试开发·日志查询分析·日志分析统计查询·软件测试工具·argparse模块
hu_nil12 小时前
LLMOps-第十三周
python·vllm
空影星12 小时前
轻量日记神器RedNotebook,高效记录每一天
python·数据挖掘·数据分析·音视频
搬砖ing换来金砖12 小时前
Python入门-Task02
开发语言·python
databook12 小时前
告别盲人摸象,数据分析的抽样方法总结
后端·python·数据分析