欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

摩斯密码(加密/解密)脚本

发布时间:2023/12/31 59 豆豆
生活随笔 收集整理的这篇文章主要介绍了 摩斯密码(加密/解密)脚本 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
# v1.1 # encode时会将非ANSII字符变为空格 # decode时会跳过非ANSII字符 class MorseCoder:__encode_alphabet = {"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": "-----","(": ".--.-", "-": "-....-", "?": "..--..", "/": "-..-.",".": ".-.-.-", "@": ".--.-."}__decode_alphabet = dict([val, key] for key, val in __encode_alphabet.items()) # 解密对照表def encode(self, plaintext):"""Encode AscII chars in plaintext to morse code"""charList = list(plaintext.upper())morsecodeList = \[self.__encode_alphabet[char] if char in self.__encode_alphabet.keys() else " " for char in charList]return " ".join(morsecodeList)def decode(self, morsecode):morsecodeList = morsecode.split(" ")charList = \[self.__decode_alphabet[char] if char in self.__decode_alphabet.keys() else char for char in morsecodeList]return "".join(charList)def get_encode_alphabet(self):return self.__encode_alphabetdef get_decode_alphabet(self):return self.__decode_alphabetif __name__ == '__main__':mc = MorseCoder()plaintext = "ALPHALAB" #需要加密的字符串morsecode = mc.encode(plaintext)print("encode result: ", morsecode)morsecode = ".- .-.. .--. .... .- .-.. .- -..." #需要解密的密文plaintext = mc.decode(morsecode)print("decode result: ", plaintext)mc.get_encode_alphabet()mc.get_decode_alphabet()

转载于:https://blog.csdn.net/xHibiki/article/details/88928419

总结

以上是生活随笔为你收集整理的摩斯密码(加密/解密)脚本的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。