古典加密

来源:互联网 发布:淘宝卖东西要交税吗 编辑:程序博客网 时间:2024/05/17 08:20

一.  Caesar密码

是一种单表代替密码,利用每个字母之后的第n(0<n<26)个字母来代替。


 例:偏移量是左移3的时候(解密时的密钥就是3)

        明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ 

        密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC


计算通式:E (x)= (x+n) mod 26

解密就是:D (x)= (x-n) mod 26

import pycipher from Caesar #利用pycipher模块实现凯撒加密和解密Caesar(key=3).encipher('meet me')#实现密钥为3的加密Caesar(key=3).decipher( 'phhw ph' ) #实现密钥为3的解密

二.  维吉尼亚密码

是在凯撒加密的基础上拓展出来的,是一种多表代替密码。

例:RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:
密钥:RELAT IONSR ELATI ONSRE LATIO NSREL
明文:TOBEO RNOTT OBETH ATIST HEQUE STION
密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

密文=(原文+密钥 mod 26)mod 26
原文=(密文- 密钥 mod 26)mod 26


import pycipher from Vigenere #利用pycipher模块Vigenere('hello').encipher('meet me')#实现密钥为hello的加密Vigenere('hello').decipher( 'phhw ph' ) #实现密钥为hello的解密



0 0
原创粉丝点击