2025年十二种不常见密码及部分实现脚本

十二种不常见密码及部分实现脚本0x01 埃特巴什码 Atbash Cipher Atbash 密码是一种替换密码 具有特定的密钥 其中字母表中的字母是颠倒的 例如 所有的 A 被替换为 Z 所有的 B 被替换为 Y 以此类推 它最初用于希伯来字母表 但可以用于任何字母表 就像我们在重力作用下看到的那样

大家好,我是讯享网,很高兴认识大家。


讯享网

0x01 埃特巴什码(Atbash Cipher)

Atbash密码是一种替换密码,具有特定的密钥,其中字母表中的字母是颠倒的

他运用这种密码来研究别人利用其他方法不能激活成功教程的那些经文,这种密码被运用在公元1世纪的艾赛尼/萨多吉/拿撒勒教派的经文中,用以隐藏姓名

对应关系如下:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ZYXWVUTSRQPONMLKJIHGFEDCBA

python脚本实现

key = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" choise = input("0:加密,1:解密") key.split() if choise == 0: plain = input("please input plaintext:>") plain.split() for i in range(len(plain)): for x in range(26): if plain[i] == key[x]: plain[i] = key[25-x] print(plain) else: ciphertext = input("please input ciphertext:>") ciphertext.split() for i in range(len(ciphertext)): for x in range(26): if ciphertext[i] == key[x]: ciphertext[i] = key[25-x] print(ciphertext)

讯享网

0x02 标准银河字母

出自游戏《指挥官基恩》系列。是系列中使用的书写系统

讯享网ᕊ╎∷↸ϟ ▭ ᖋ∷ᒷリᒣ ▭ ∷ᒷᖋ|:

0x03 当铺密码

当铺密码就是一种将中文和数字进行转化的密码,算法相当简单:当前汉字有多少笔画出头,就是转化成数字几

当铺密码就是一种将中文和数字进行转化的密码,一种加密算法,在CTF比赛题目中出现过。该加密算法是根据当前汉字有多少笔画出头,对应的明文就是数字几

例如:
密文:王夫 井工 夫口 由中人 井中 夫夫 由中大
对应:67 84 70 123 82 77 125

0x04 摩斯电码(用‘1’、‘0’表示)

它发明于1837年,是一种早期的数字化通信形式。不同于现代化的数字通讯,摩尔斯电码只使用零和一两种状态的二进制代码,它的代码包括五种:短促的点信号“・”,保持一定时间的长信号“—”,表示点和划之间的停顿、每个词之间中等的停顿,以及句子之间长的停顿

python脚本实现

string=input('please input plaintext:>') key=string.split(" ") dictionary= {'01': 'A', '1000': 'B', '1010': 'C', '100':'D', '0':'E', '0010':'F', '110': 'G', '0000': 'H', '00': 'I', '0111':'J', '101': 'K', '0100': 'L', '11': 'M', '10': 'N', '111': 'O', '0110': 'P', '1101': 'Q', '010': 'R', '000': 'S', '1': 'T', '001': 'U', '0001': 'V', '011': 'W', '1001': 'X', '1011': 'Y', '1100': 'Z', '01111': '1', '00111': '2', '00011': '3', '00001': '4', '00000': '5', '10000': '6', '11000': '7', '11100': '8', '11110': '9', '11111': '0', '001100': '?', '10010': '/', '': '()', '': '-', '010101': '.', '':',', '011010':'@', '':':', '':':', '10001':'=', '011110':"'", '':'!', '001101':'_', '010010':'"', '10110':'(', '':'{', '':'}' }; for item in key: print(dictionary[item],end='')

0x05 摩斯电码(用‘-’、‘.’表示)

python脚本实现

讯享网string=input('please input plaintext:>') key=string.split(" ") dictionary= {'.-': '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', '.----': '1', '..---': '2', '...--': '3', '....-': '4', '.....': '5', '-....': '6', '--...': '7', '---..': '8', '----.': '9', '-----': '0', '..--..': '?', '-..-.': '/', '-.--.-': '()', '-....-': '-', '.-.-.-': '.' }; for item in key: print(dictionary[item],end='')

0x06 培根密码

培根密码中的ab,代表的是数学二进制中的0和1.通过下列的密码表进行加密和解密:

第一种方式:
A aaaaa B aaaab C aaaba D aaabb
E aabaa F aabab G aabba H aabbb
I abaaa J abaab K ababa L ababb
M abbaa N abbab O abbba P abbbb
Q baaaa R baaab S baaba T baabb
U babaa V babab W babba X babbb
Y bbaaa Z bbaab

第二种方式
a AAAAA g AABBA n ABBAA t BAABA
b AAAAB h AABBB o ABBAB u-v BAABB
c AAABA i-j ABAAA p ABBBA w BABAA
d AAABB k ABAAB q ABBBB x BABAB
e AABAA l ABABA r BAAAA y BABBA
f AABAB m ABABB s BAAAB z BABBB

在线加解密工具:在线工具|培根密码加解密

第一种python脚本实现

string=input('please input plaintext:>') string.split() dictionary= {'A': 'aaaaa', 'B': 'aaaab', 'C': 'aaaba', 'D': 'aaabb', 'E': 'aabaa', 'F': 'aabab', 'G': 'aabba', 'H': 'aabbb', 'I': 'abaaa', 'J': 'abaab', 'K': 'ababa', 'L': 'ababb', 'M': 'abbaa', 'N': 'abbab', 'O': 'abbba', 'P': 'abbbb', 'Q': 'baaaa', 'R': 'baaab', 'S': 'baaba', 'T': 'baabb', 'U': 'babaa', 'V': 'babab', 'W': 'babba', 'X': 'babbb', 'Y': 'bbaaa', 'Z': 'bbaab' }; for item in string: print(dictionary[item],end=' ')

第二种python脚本实现

讯享网string=input('please input plaintext:>') string.split() dictionary= {'a': 'AAAAA', 'g': 'AABBA', 'n': 'ABBAA', 't': 'BAABA', 'b': 'AAAAB', 'h': 'AABBB', 'o': 'ABBAB', 'u': 'BAABB', 'v': 'BAABB', 'c': 'AAABA', 'i': 'ABAAA', 'j': 'ABAAA', 'p': 'ABBBA', 'w': 'BABAA', 'd': 'AAABB', 'k': 'ABAAB', 'q': 'ABBBB', 'x': 'BABAB', 'e': 'AABAA', 'l': 'ABABA', 'r': 'BAAAA', 'y': 'BABBA', 'f': 'AABAB', 'm': 'ABABB', 's': 'BAAAB', 'z': 'BABBB' }; for item in string: print(dictionary[item],end=' ')

0x07 敲击码

敲击码是基于5×5方格波利比奥斯方阵来实现的,不同点是是用K字母被整合到C中

因此密文的特征为1-5的两位一组的数字,编码的范围是A-Z字母字符集,字母不区分大小写

例如:

0x08 圣堂武士密码(Templar Cipher)

圣堂武士的密码是基于他们的旗帜上有一个红十字
它由四个箭头形状组成,圣堂武士用三角形和圆点组合了25个符号,指向十字箭头的四个方向
字母表中除了J之外的每个字母都用一种容易记住的模式替换了其中一个符号

城堡和密码
把钱交给离你最近的城堡里的骑士,他们给了你一张纸条,上面写着你给了他们多少钱
你可以把这张纸条带到一个遥远的城堡,在那里当地的骑士会把它换回来

但这并没有完全解决问题,强盗可以伪造钞票,圣殿骑士团通过使用密码解决了这个问题:加密信息的秘密算法,只有拥有密码的人才能破译

只有圣殿骑士知道他们密码的秘密,这就是国际银行业的开端,直到今天,国际银行业仍需要密码才能运作

小讯
上一篇 2025-01-26 20:53
下一篇 2025-03-28 10:22

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/121654.html