Vigenere加密/解密时,把英文字母映射为0-25的数字再进行运算,并按n个字母为一组进行变换.算法定义如下:
设密钥 k =(k1,k2,k3…,kn),明文 m = (m1,m2,….mn),则加密算法为:
Ek(m) = (c1,c2,…cn)
其中:c1 = (mi+ki)(mod 26),i=1,2,3…..n
解密算法为:
mi = (ci - ki)(mod 26), i = 1,2,…..n。

import  string,osdef     vigenereEncrypt(msg,key):size = len(key)result = []cnt = 0for i in msg:if i.upper() in string.uppercase:#offset相当于是 kioffset = string.uppercase.find(key[cnt%size])t = string.uppercase[(string.uppercase.find(i.upper())+offset)%26]  #这里相当于是c1 = (mi+ki)(mod 26) ,t = c1if i.isupper():result.append(t)else:result.append(t.lower())cnt+=1else:result.append(i)return "".join(result)
def     main():msg = "Common sense is not so common"cipher = vigenereEncrypt(msg,"PIZZA")#key = "PIZZA:print cipher
if     __name__=="__main__":main()

python实现维吉尼亚加密法相关推荐

  1. php实现维吉尼亚算法,python实现维吉尼亚算法

    本文实例为大家分享了python实现维吉尼亚算法的具体代码,供大家参考,具体内容如下 1 Virginia加密算法.解密算法 Vigenenre密码是最著名的多表代换密码,是法国著名密码学家Vigen ...

  2. 用python实现维吉尼亚密码的加密与唯密文解密

    目录 加密过程 加密原理 代码加密的思路 代码预览 代码解析与运行效果 唯密文解密过程 解密原理 代码预览 代码分析与运行结果 加密过程 加密原理 字母表中每一个字母都对应着一个数字,从A~ Z依次是 ...

  3. 维吉尼亚密码的破解算法及python代码实现

    目录 1. 密文描述 1.1 密文1 1.2 密文2 2. 破解原理 2.1 重合指数法确定密钥长度 2.2 互重合指数确定子串间相对偏移 2.3 密钥字的确定 2.4 密文破解 3. 破解代码 参考 ...

  4. 维吉尼亚密码破解(Python完整详细源码)

    维吉尼亚密码破解(Python完整详细源码) 欢迎大家访问我的GitHub博客 https://lunan0320.github.io/ 文章目录 维吉尼亚密码破解(Python完整详细源码) 1.写 ...

  5. python 维吉尼亚密码加密和解密

    最近在学密码学,作业里面的加密解密看得脑壳疼,刚好寒假自学了一些python,第一反应就是用python帮我加解密. 菜菜的我写了好久,刚写完,然后同学告诉我维吉尼亚密码有专门的加密解密的库,我一下就 ...

  6. python编写加密程序_python编写的维吉尼亚密码加解密程序

    维吉尼亚密码表 ============================================= #维吉尼亚密码 加密 key='helloworld' plaintext='whereis ...

  7. python 古典密码第一弹(凯撒密码,Playfair密码,维吉尼亚密码)

    各位白嫖-漂亮大哥哥姐姐们好,在下菜鸡一枚,主要想在这和大家一起探讨学习之道,一起愉快的学习密码学基础.总所周知,密码学学的好,头发掉的少... 直接进入正题,今天我就主要讲三个密码,而且都是古典密码 ...

  8. 维吉尼亚密码 php,python小脚本之维吉尼亚密码

    维吉尼亚作为古典密码,本身的加解密并不是很难,因此也就有了这篇文章~ 下面初步解释下维吉尼亚密码的加密原理,假设现在有明文'a',加密密钥为'b',然后我们参照上面的维吉尼亚密码表进行加密,在a行的b ...

  9. 古典密码之维吉尼亚密码破解思路

    首先要说一句,这是我第一次用python coding,所以很多地方都不太懂,吐槽自己竟然用sum当变量名,之后有用sum()函数,然后报了错还不知道为什么.不知道用ascii码要做chr()转化,等 ...

最新文章

  1. 2019微生物组—宏基因组分析技术研讨会第六期
  2. scikit-learn朴素贝叶斯各种用法总结真正讲明白的,为作者建平点赞
  3. docker安装在服务器的那个位置,docker容器卷通常会放在什么位置
  4. 计算价格, java中浮点数精度丢失的解决方案
  5. SWOOLE httpserver
  6. Python 输入输出
  7. SQLite 安装(http://www.w3cschool.cc/sqlite/sqlite-installation.html)
  8. 自考教育学计算机实践考试,中山大学自考计算机实践考试的流程是什么?
  9. Cloudstreams: 云间整合的下一个挑战
  10. 数据结构c语言版第四章题库,数据结构(C语言版)(第4版)习题
  11. 【HDU - 1754】I Hate It (线段树模板 单点覆盖更新+区间最大值查询)
  12. 毕设题目:Matlab元胞自动机城市规划
  13. 通信系统是如何收发复数信号的:IQ 调制原理
  14. Win7下PDF文件无法显示缩略图的解决方法
  15. Windows中解压Linux中产生的tar.gz分卷压缩包
  16. 【树形dp 题解】 洛谷P3174 毛毛虫
  17. android app 设计,安卓APP新手设计教程:19条Android设计经验大全
  18. 第一次安装Microsoft SharePoint Protal Server 2003遇到的问题
  19. PS系列 -- 颜色替换
  20. Spark、Docker、Tensorflow开发者看过来,CCTC 2017报名开启

热门文章

  1. Py之minepy:minepy的简介、安装、使用方法之详细攻略
  2. 成功解决ValueError: setting an array element with a sequence.
  3. DL之DNN:利用DNN【784→50→100→10】算法对MNIST手写数字图片识别数据集进行预测、模型优化
  4. NLP之TM之LDA:利用LDA算法瞬时掌握文档的主题内容—利用希拉里邮件数据集训练LDA模型并对新文本进行主题分类
  5. Spring MVC能响应HTTP请求的原因?
  6. 七牛2018春季校园招聘后端开发工程师笔试经验
  7. AS打开速度慢,AS项目导入慢,新建项目导入慢
  8. 博客园 创始人 杜勇
  9. zoj 3351 Bloodsucker(概率 dp)
  10. ios开发笔记之 APNS推送服务的实现