使用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首先创建一个反向的摩斯密码对照表,然后逐个摩斯密码查找对应的字符并拼接。

posted @ 2025-01-18 09:06  王铁柱6  阅读(520)  评论(0)    收藏  举报