没有意义用摩斯电码怎么说
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了没有意义用摩斯电码怎么说相关的知识,希望对你有一定的参考价值。
刷CTF题的时候碰到了摩斯密码(morse code),由于本科课程中有密码学而且上课也好好听了,但是实在是没有摩斯密码的印象,因此查阅资料后记录下来。组成
摩尔斯电码只使用零和一两种状态的二进制代码,短促的点信号&39;?&39;,读“滴”(Dit),在二进制中使用&39;0&39;来表示; 保持一定时间的长信号&39; - &39;,读“嗒”(Dah),在二进制中用&39;1&39;表示。
语法规则
划一般是三个点的长度;字符内部点划之间的间隔是一个点的长度;字符之间的间隔是三个点的长度;单词之间的间隔是七个点的长度。例如,在“morse code“中,m的‘- -‘间隔一个点的长度,m与o之间要间隔三个点的长度,morse与code之间要间隔七个点的长度。
对照表

摩斯密码字母对照表

摩斯密码数字对照表
在数字码中,我们可以看到有长码和短码两种形式,通常使用的是长码,短码常用于中文电码中组成汉字,短码不可与字母码混用(细看短码中的1与字母中的A)。
示例
原题:11 111 010 000 0 1010 111 100 0 00 000 000 111 00 10 1 0 010 0 000 1 00 10 110
翻译前:-- --- .-. ... . -.-. --- -.. . .. ... ... --- .. -. - . .-. . ... - .. -. --.
翻译后:MORSECODEISSOINTERESTING
其他
需要额外记住并使用的三个讯号:
通讯前一定要记得使用“开始”讯号“—?—?—”。
如果通讯途中发生错误,要先发出表示“错误”的讯号“??????”,再传递正确的讯号。
通讯结束时,一定要记得加上表示“结束”的讯号“???—?”。
SOS
在电影中,我们经常可以看到SOS这三个字母作为紧急求救信号,但是这并不是任何单词的缩写,而是国际摩尔斯电码救难信号。鉴于当时海难事件频繁发生,往往由于不能及时发出求救信号和最快组织施救,结果造成很大的人员伤亡和财产损失,国际无线电报公约组织于1908年正式将它确定为国际通用海难求救信号。
这三个字母组合没有任何实际意义,只是因为它的电码“ ...---...”(三个圆点,三个破折号,然后再加三个圆点)在电报中是发报方最容易发出,接报方最容易辨识的电码。
光线发射方法为:短光——长光——短光。
后记 参考技术A 摩尔斯电码只使用零和一两种状态的二进制代码,短促的点信号&39;?&39;,读“滴”(Dit),在二进制中使用&39;0&39;来表示; 保持一定时间的长信号&39; - &39;,读“嗒”(Dah),在二进制中用&39;1&39;表示。
语法规则
划一般是三个点的长度;字符内部点划之间的间隔是一个点的长度;字符之间的间隔是三个点的长度;单词之间的间隔是七个点的长度。例如,在“morse code“中,m的‘- -‘间隔一个点的长度,m与o之间要间隔三个点的长度,morse与code之间要间隔七个点的长度。 参考技术B 摩尔斯电码(又译为摩斯密码,Morse wxxxcode-style)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。它发明于1837年,发明者有争议,是美国人塞缪尔·莫尔斯或者艾尔菲德·维尔。 摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用零和一两种状态的二进制代码,它的代码包括五种: 点、划、点和划之间的停顿、每个字符之间短的停顿、每个词之间中等的停顿以及句子之间长的停顿。 参考技术C 没有意义用摩斯电码怎么说?
答案如下:没有意义用摩斯电码用嘴说
Python-摩斯密码加密解密
前言
- 密码表只写了
英文字母
和数字
,在百度的时候发现不同地方写的符号转换方式不大一样。
你也可以在encode.txt
或decode.txt
中添加新的内容,- 如果没联网的话倒是可以用脚本跑,有联网的话还是用在线的吧
一、摩斯密码表
[1]. encode.txt
例: 将
a
加密后的结果为.-
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 --..
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 -----
[2]. decode.txt
例: 将
.-
解密后的结果为a
.- 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
.- 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
二、代码
# coding=utf-8
# 作者:小狐狸FM
# 功能:摩斯密码加密&解密
# 介绍:
# 1. 输入时,每个密文需要以空格间隔开
# 2. 密文的字符需要变更为小数点和减号
# 3. 未在密码表的密文解密时会被替换成空格
# 4. 解密的结果进行了小写处理
encode_txt = "encode.txt" #加密表路径
decode_txt = "decode.txt" #解密表路径
def Exchange(target,char1,char2,char3):
'''交换字符串中的两种字符char1,char2'''
result = target.replace(char1,char3) #将char1替换成第三种字符
result = result.replace(char2,char1)
result = result.replace(char3, char2)
return result
# print(Exchange("..--- ...-- ...--",".","-","*")) #将.和-进行互换,*用来临时存储
def GetFile(path):
'''读取文件,返回字典对象'''
dic = dict()
txt = ""
with open(path, "r") as fp: # 文件读取
txt = fp.read()
lis_data = list(set(txt.split("\\n"))) # 去重、分割
if "" in lis_data: #去空
lis_data.remove("")
for datas in lis_data:
key, data = datas.split(" ") # 分割
dic[key] = data
return dic
# print(GetFile(encode_txt))
# print(GetFile(decode_txt))
def MorseDecode(target):
'''摩斯密码解密'''
lis_target = list(target.split(" ")) #分割
dic = GetFile(decode_txt) #解密字典
result = "" #解密结果
for i in lis_target: #解密
if i in dic.keys(): #存在该密文时
result += dic[i]
else:
result += " "
return result
# print(MorseDecode(".---- ..---"))
def MorseEncode(target):
'''摩斯密码加密'''
dic = GetFile(encode_txt) #加密字典
result = "" #加密结果
for i in target: #遍历明文
if i in dic.keys(): #存在该明文时
result += " " + dic[i]
else:
result += " "
return result
# print(MorseEncode("233"))
if __name__ == '__main__': #主函数
while True:
print("==========================")
print(" 0. 退出 ")
print(" 1. 字符替换 ")
print(" 2. 摩斯加密 ")
print(" 3. 摩斯解密 ")
print("==========================")
flag = int(input("请选择:"))
if flag==1: #字符替换
target = input("字符串:")
ch = input("需要替换的字符:")
ch_replace = input("需要替换成什么:")
print("替换结果:",target.replace(ch,ch_replace))
elif flag==2: #摩斯加密
target = input("字符串:")
print("摩斯加密结果:",MorseEncode(target))
elif flag==3: #摩斯解密
target = input("字符串:")
print("摩斯解密结果1:",MorseDecode(target).lower())
print("摩斯解密结果2:",MorseDecode(Exchange(target,".","-","*")).lower())
else:
break
以上是关于没有意义用摩斯电码怎么说的主要内容,如果未能解决你的问题,请参考以下文章
morse_code_implementation 摩斯电码实现