摩斯密碼加解密

2021-09-08 04:25:17 字數 1933 閱讀 5889

摩斯密碼又叫莫爾斯電碼,摩斯電碼

著名的sos救難訊號用莫爾斯電碼表示為:...---...滴滴滴嗒嗒嗒滴滴滴

莫斯編碼是一種變長編碼,哈夫曼編碼也是一種變長編碼。莫斯編碼不是哈夫曼編碼,如果字元之間沒有空白,會產生二義性,而哈夫曼編碼不會產生二義性

莫斯編碼不是哈夫曼編碼,字元之間沒有3t,而直接混在一起可能會產生歧義。

但是為了提高傳送效率,人們規定下面這些字元之間沒有3t,而是幾個字元連在一起

這是一些有特殊意義的點劃組合。它們由二個字母的摩爾斯電碼連成乙個使用,這樣可以省去正常時把它們做為兩個字母傳送所必須的中間間隔時間。

ar:·—·—·(停止,訊息結束)

as:·—···(等待)

k:—·—(邀請發射訊號)(一般跟隨ar,表示「該你了」)

sk:···—·—(終止,聯絡結束)

bt:—···—(分隔符)

···—·(我將重新傳送最後乙個單詞)

·· ··(同樣)

········(錯誤)

常用語是指一些縮寫,跟現在的網路用語有點像。

常用語是用乙個單詞來表示乙個句子,而上面的特殊用語是用乙個特殊字元表示乙個句子。

# -*- coding:utf-8 -*-

__author__ = 'kiven'

__date__ = '2014-06-04'

__version__ = '1.0.0'

# 摩斯密碼表(自己可定義加密方式...)

code =

# print code

# 反轉字典(作為解密摩斯密碼的字典)

uncode = dict(map(lambda t:(t[1],t[0]),code.items()))

# print uncode

'''將字串轉換成摩斯密碼

params:需要轉換的字串

'''def stringtomorsealphabet(msg):

# message用於儲存加密結果

message = ''

# msg = raw_input('message:')

# msg = 'this is test'

print msg + ' ///對應的摩斯密碼為///',

for c in msg:

if c == ' ':

message += ' '

else:

# upper():將所有小寫字母轉換成大寫字母

message += code[c.upper()] + ' '

return message

'''將摩斯密碼還原成字串

params:需要還原的摩斯碼

'''def morsealphabettostring(morsecode):

# message用於儲存解密結果

message = ''

list = morsecode.split(' ')

# print list

print morsecode + ' ///對應的明文為///',

for s in list:

if s == '':

message += ' '

else:

message += uncode[s]

return message

# test

# print stringtomorsealphabet('i love you')

print morsealphabettostring(stringtomorsealphabet('what the ****!'))

比對密碼 加解密

package main import fmt golang.org x crypto bcrypt type user struct func main u0.password pwd 模擬註冊是傳遞的密碼 hash,err bcrypt.generatefrompassword byte u0....

培根密碼加解密(Python)

加密時,明文中的每個字母會根據下面轉換成5個字母 解密時,密文中的每5個字母為一組轉換成對應的1個字母 輸入e或d,選擇加密或解密 if choose e str input input your string n t lower liststr for i in str if i in code ...

密碼學加解密實訓 墨者學院摩斯密碼第2題

好嗨呦,感覺人生到達了巔峰!咳咳,言歸正傳,其實就是歌曲we will rock you 摩斯碼的組合,簡直無縫連線啊,原作加上摩斯碼後盡然如此悅耳,愛 的你一定要試一下哦 用audacity開啟後聲軌是這樣的 好像也看不出什麼,摩斯碼出現在前幾秒,哎,只能動用我的 細胞了,的的的 的的的的 的的 ...