简单的摩斯电码加解密脚本

管理员 2020-07-12 PM 580℃ 0条

Readme:可自动识别需要加密还是解密,如:

C:\cmd>python3 morse.py "123456"

[+]"123456"的加密结果:.----/..---/...--/....-/...../-....

C:\cmd>python3 morse.py ".----/..---/...--/....-/...../-...."

[-]".----/..---/...--/....-/...../-...."的解密结果:123456

源码如下:

#/usr/bin/python3
# _*_ coding:utf-8 _*_
import sys

"""对照表"""
t = {"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": "-----",
	 "(": ".--.-", "-": "-....-", "?": "..--..", "/": "-..-.","_":"..--.-",
	 ".": ".-.-.-", "@": ".--.-.", ")": "-.--.-", "}":"-----.-","{":"----.--",
	 
	 '.-': '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',
	 '.--.-': '(', '-....-': '-', '..--..': '?',"-.--.-":")", "-----.-":"}","----.--":"{",
	 '-..-.': '/', '.-.-.-': '.', '.--.-.': '@',"..--.-":"_",
	 }



def edcode(p):
	s = ''
	if './' in p or '-/' in p:   # 判断输入的字符串是要加密还是解密
		"""解密"""
		for i in p.strip('/').split('/'):   # 循环取出每一个解密的元素
			s += t[i]   # 进行对照表解密
			
		print('\n[-]"{}"的解密结果:'.format(p) + s)    # 打印结果
			
	else:
		"""加密"""
		for i in list(p):
			s += t[i.upper()] + '/'	# 每个字符加密后拼接一起,使用'/'隔开
			
		print('\n[+]"{}"的加密结果:'.format(p) + s.strip('/'))   # 首尾去'/',打印结果
	
if __name__ == '__main__':
	if len(sys.argv) == 2:   # 判断是否按照指定格式运行脚本
		try:
			p = sys.argv[1]   # 取需要加密或者解密的参数
			edcode(p)
		
		except:   # 人生如戏,难免发生意外,提示运行错误
			print("\n[!]请检查输入的参数是否合法,暂时只支持字母数字和一下特殊字符:'_','-','.','@','/','?'")
			
	else:
		print("""
[*]使用方法:python3 this.py "要加密或者解密的字符串"
[+]加密:python3 morse.py "123456"
[-]解密:python3 morse.py ".----/..---/...--/....-/...../-...."   # 解密一定要带有 '/'符号,不然识别不出
			""")

标签: 摩斯密码

非特殊说明,本博所有文章均为博主原创。

评论啦~