当前位置: 首页 > news >正文

维吉尼亚密码

维吉尼亚密码属于多表代换密码
在这里插入图片描述

在这里插入图片描述
其中A<–>0,B<–>1,…,Z<–>25,则每个密钥K相当于一个长度为m的字母串,称为密钥字。维吉尼亚密码一次加密m个明文字母。

示例:设m=6,密钥字为“CIPHER”,对应数字串K=(2,8,15,7,4,17)。要加密明文为:thiscrypto,则
在这里插入图片描述则相应的密文为:VPXZGIAXIV
解密时,使用相同的密钥字进行逆运算即可。

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

加密:

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)%26Ciphertext += chr(C_i+ 65) 
print(Ciphertext)

解密:

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)%26Plaintext += chr(M_i+ 65) 
print(Plaintext)
http://www.lryc.cn/news/186531.html

相关文章:

  • ubuntu20.04挂载拓展盘保姆级流程
  • 顶顶通电话机器人接口对接开源ASR(语音识别)
  • windows消息机制
  • 整数划分——DP
  • Git切换用户常用命令
  • 一般香港服务器带宽选多大够用?(带宽计算方法)
  • vue中使用ali-oss上传文件到阿里云上
  • php实战案例记录(17)计算时间的函数及其示例说明
  • 基于Keil a51汇编 —— MPL 宏定义
  • Android 13 骁龙相机点击拍照流程分析(二)——点击拍照到存入相册
  • 常见算法-巴斯卡三角形(Pascal)
  • AI:09-基于深度学习的图像场景分类
  • uni-app:引入echarts(使用renderjs)
  • 使用wireshark解析ipsec esp包
  • linux如何删除最近操作的日志
  • android端MifareClassicTool
  • 设计模式 - 迭代器模式
  • Docker之Dockerfile搭建lnmp
  • 排序算法——选择排序
  • 【数据结构C/C++】双向链表的增删改查
  • Godot 添加Nuget 引用
  • IC工程师职场必备《经典Verilog100多个代码案例》(附下载)
  • springboot项目做成公共项目
  • RTC 时间、闹钟
  • 【yolo系列:yolov7训练添加spd-conv】
  • 面向对象设计-UML六种箭头含义
  • 一本没有任何数学公式的自然语言处理入门书
  • 【数据结构C/C++】多维数组的原理、访问方式以及作用
  • 2023年中国烹饪机器人市场发展概况分析:整体规模较小,市场仍处于培育期[图]
  • Android原生实现控件选择背景变色方案(API28及以上)