atbash 埃特巴什码

atbash 埃特巴什码

概念

埃特巴什码(Atbash Cipher)是一个系统:最后一个字母代表第一个字母,倒数第二个字母代表第二个字母。
在罗马字母表中,它是这样出现的:

常文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:Z Y X W V U T S R Q P O N M L K J I H G F E D C B A

这种密码是由熊斐特博士发现的。熊斐特博士为库姆兰《死海古卷》的最初研究者之一,他在《圣经》历史研究方面最有名气的著作是《逾越节的阴谋》。他运用这种密码来研究别人利用其他方法不能破解的那些经文。这种密码被运用在公元1世纪的艾赛尼/萨多吉/拿撒勒教派的经文中,用以隐藏姓名。其实早在公元前500年,它就被抄经人用来写作《耶利米书》耶利米是活动在公元前627-前586年间的犹太先知,圣经旧约书中有许多关于他的记载。在他离世前,犹太领土已被巴比伦人占领。。它也是希伯来文所用的数种密码系统之一。

算法

  • atbash_slow(sequence: str) -> str
  • atbash_slow(sequence: str) -> str

代码

[attbash.py]{..\src\ciphers\attbash.py}

"""
Prepare
   1. sys.path 中增加 TheAlgorithms\src 子模块

"""
import sys
sys.path.append('E:\dev\AI\TheAlgorithms\src')

案例一:

对明文进行加密

对密文进行解密

其中:对密文进行加密得到明文

from ciphers.atbash import atbash_slow,atbash
"""
    >>> atbash_slow("ABCDEFG")
    'ZYXWVUT'

    >>> atbash_slow("aW;;123BX")
    'zD;;123YC'

    >>> atbash("ABCDEFG")
    'ZYXWVUT'

    >>> atbash("aW;;123BX")
    'zD;;123YC'
"""
s = "ABCDEFG"
s_atbash_slow = atbash_slow(s)
print ("s:=",s)
print ("atbash_slow(s):",s_atbash_slow)
print ("double atbash_slow(s):",atbash_slow(s_atbash_slow)) 


s = "aW;;123BX"
s_atbash_slow = atbash_slow(s)
print ("s:=",s)
print ("atbash_slow(s):",s_atbash_slow)
print ("double atbash_slow(s):",atbash_slow(s_atbash_slow))

s = "ABCDEFG"
s_atbash = atbash(s)
print ("s:=",s)
print ("atbash(s):",s_atbash)
print ("double atbash(s):",atbash(s_atbash))


s = "aW;;123BX"
s_atbash = atbash(s)
print ("s:=",s)
print ("atbash(s):",s_atbash)
print ("double atbash(s):",atbash(s_atbash))

s:= ABCDEFG
atbash_slow(s): ZYXWVUT
double atbash_slow(s): ABCDEFG
s:= aW;;123BX
atbash_slow(s): zD;;123YC
double atbash_slow(s): aW;;123BX
s:= ABCDEFG
atbash(s): ZYXWVUT
double atbash(s): ABCDEFG
s:= aW;;123BX
atbash(s): zD;;123YC
double atbash(s): aW;;123BX

posted @ 2021-06-04 15:04  IT88老兵  阅读(853)  评论(0编辑  收藏  举报