使用js实现摩斯密码的加密和解密
摩斯密码(Morse Code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。以下是一个简单的摩斯密码加密和解密的JavaScript实现,适用于前端开发。
// 摩斯密码对照表
const morseCodeTable = {
'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': '--..', '0': '-----', '1': '.----', '2': '..---', '3': '...--',
'4': '....-', '5': '.....', '6': '-....', '7': '--...', '8': '---..',
'9': '----.', '.': '.-.-.-', ',': '--..--', '?': '..--..',
"'": '.----.', '!': '-.-.--', '/': '-..-.', '(': '-.--.',
')': '-.--.-', '&': '.-...', ':': '---...', ';': '-.-.-.',
'=': '-...-', '+': '.-.-.', '-': '-....-', '_': '..--.-',
'"': '.-..-.', '$': '...-..-', '@': '.--.-.', ' ': '/'
};
// 加密函数
function encryptMorse(text) {
return text.toUpperCase().split('').map(char => {
return morseCodeTable[char] || '';
}).join(' ');
}
// 解密函数
function decryptMorse(morseText) {
const reverseTable = Object.keys(morseCodeTable).reduce((acc, key) => {
acc[morseCodeTable[key]] = key;
return acc;
}, {});
return morseText.split(' ').map(morse => {
return reverseTable[morse] || '';
}).join('');
}
// 测试加密和解密功能
const originalText = 'Hello, World!';
const encryptedText = encryptMorse(originalText);
const decryptedText = decryptMorse(encryptedText);
console.log('Original Text:', originalText);
console.log('Encrypted Text:', encryptedText);
console.log('Decrypted Text:', decryptedText);
这个实现包含了摩斯密码的常见字符和符号。加密函数encryptMorse
将文本转换为大写,然后逐个字符查找对应的摩斯密码并拼接。解密函数decryptMorse
首先创建一个反向的摩斯密码对照表,然后逐个摩斯密码查找对应的字符并拼接。