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 ".----/..---/...--/....-/...../-...." # 解密一定要带有 '/'符号,不然识别不出
""")