没有意义用摩斯电码怎么说

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.txtdecode.txt中添加新的内容,
  • 如果没联网的话倒是可以用脚本跑,有联网的话还是用在线的吧

摩尔斯电码 百度百科

Morse Code Translator加密解密

American Morse Code

MorseCode 小狐狸FM

一、摩斯密码表

[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 摩斯电码实现

用摩斯电码通关《黑暗之魂3》!up主自制奇葩手柄,连育碧都找上门合作

摩斯密码I Love You怎么表示

求中文摩斯密码对照表,全哦!

摩斯密码

i love you用摩尔斯电码怎么写?