维吉尼亚密码

凯撒加密以及维吉尼亚加密,解密,py代码

随声附和 提交于 2020-01-13 00:23:37
凯撒加密 凯撒加密法,或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。 通俗一点,就是把字母按照一个key(0~25)向前移动,解密的话反过来就行; 在线加密:https://www.qqxiuzi.cn/bianma/kaisamima.php 代码来源于:https://blog.csdn.net/by4_luminous/article/details/53343780 py脚本加密解密: def change ( c , i ) : c = c . lower ( ) num = ord ( c ) if num >= 97 and num <= 122 : num = 97 + ( ( num - 97 ) + i ) % 26 return chr ( num ) def kaisa_jiami ( string , i ) : string_new = '' for s in string : string_new += change ( s , i ) print ( string_new ) return string_new def kaisa_jiemi ( string ) : for i in range ( 25 ) :

维吉尼亚密码

匿名 (未验证) 提交于 2019-12-03 00:40:02
代码已上传到 GitHub ―― Vigenere.java 人们在恺撒移位密码的基础上扩展出多表密码,称为维吉尼亚密码。该方法最早记录在吉奥万・巴蒂斯塔・贝拉索( Giovan Battista Bellaso)于1553年所著的书《吉奥万・巴蒂斯塔・贝拉索先生的密码》 第一行代表明文字母,第一列代表密钥字母,它的明码表后有26个密码表,每个表相对前一个发生一次移位 如果只用其中某一个进行加密,那么只是简单的恺撒移位密码。但用方阵中不同的行加密不同的字母,它就是一种强大的密码了 加密者可用第7行来加密第一个字母,再用第25行来加密第二个字母,然后根据第8行来加密第三个字母等 维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计 确定密钥 首先,和消息接收方需要在密钥上达成一致,加密解密都是同一个密钥,比如选用 BIG 排列明文 把明文转换为大写字母排列出来,对应着重复排列密钥,直到明文结尾 明文:THE BUTCHER THE BAKER AND THE CANDLESTICK MAKER 密钥:BIG BIGBIGB IGB IGBIG BIG BIG BIGBIGBIGBI GBIGB 1 2 加密明文 然后,每一组的两个字母就成了我们的坐标。在维吉尼亚坐标图中分别横向纵向找出它们。横坐标和纵坐标的交点就是加密后的字母