好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Python密码学Caesar Cipher凯撒密码算法教程

在最后一章中,我们处理了反向密码.本章详细讨论了凯撒密码.

凯撒密码算法

凯撒密码的算法具有以下特征;

Caesar Cipher Technique是一种简单易用的加密技术方法. 这是一种简单的替换密码类型. 每个纯文本字母都被一个字母替换,字母的位数固定不变./p>

下图描绘了Caesar密码算法实现的工作原理 :

Caesar密码算法的程序实现如下 :

def?encrypt(text,s):
result?=?""
???#?transverse?the?plain?text
???for?i?in?range(len(text)):
??????char?=?text[i]
??????#?Encrypt?uppercase?characters?in?plain?text
??????if?(char.isupper()):
?????????result?+=?chr((ord(char)?+?s-65)?%?26?+?65)
??????#?Encrypt?lowercase?characters?in?plain?text
??????else:
?????????result?+=?chr((ord(char)?+?s?-?97)?%?26?+?97)
??????return?result
#check?the?above?function
text?=?"CEASER?CIPHER?DEMO"
s?=?4
print?"Plain?Text?:?"?+?text
print?"Shift?pattern?:?"?+?str(s)
print?"Cipher:?"?+?encrypt(text,s)

输出

你可以看到凯撒密码,即输出如下图所示 :

说明 一次遍历一个纯文本字符. 对于给定纯文本中的每个字符,根据规则转换给定字符,具体取决于加密过程文本的说明和解密. 遵循这些步骤后,会生成一个新的字符串,称为密文.

凯撒密码算法的黑客攻击

密码文本可以被各种可能性攻击.其中一种可能性是暴力技术,其中涉及尝试每个可能的解密密钥.这种技术不需要太多努力,对于黑客来说相对简单.

黑客攻击凯撒密码算法的程序实现如下

message?=?'GIEWIVrGMTLIVrHIQS'?#encrypted?message
LETTERS?=?'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
for?key?in?range(len(LETTERS)):
???translated?=?''
???for?symbol?in?message:
??????if?symbol?in?LETTERS:
?????????num?=?LETTERS.find(symbol)
?????????num?=?num?-?key
?????????if?num?<?0:
????????????num?=?num?+?len(LETTERS)
?????????translated?=?translated?+?LETTERS[num]
??????else:
?????????translated?=?translated?+?symbol
print('Hacking?key?#%s:?%s'?%?(key,?translated))

考虑上一个示例中加密的密文.然后,使用密钥和使用暴力攻击技术的可能的黑客攻击方法的输出如下 :

以上就是Python密码学Caesar Cipher凯撒密码算法教程的详细内容,更多关于Python密码学Caesar Cipher的资料请关注其它相关文章!

查看更多关于Python密码学Caesar Cipher凯撒密码算法教程的详细内容...

  阅读:44次