摩斯密码是一种通过点、划等符号表示字母和数字的加密方法。以下是使用 JavaScript 实现摩斯密码加密和解密的示例代码:
// 摩斯密码字典 const morseCode = { "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 encryptMorseCode(text) { // 将文本转换为大写字母 const uppercaseText = text.toUpperCase(); let result = ""; // 将每个字符转换为摩斯密码 for (let i = 0; i < uppercaseText.length; i++) { const char = uppercaseText[i]; if (morseCode[char]) { result += morseCode[char] + " "; } } return result.trim(); // 去掉开头和结尾的空格 } // 解密函数 function decryptMorseCode(code) { let result = ""; // 将摩斯密码分割成单个字符 const chars = code.split(" "); // 将每个字符转换为字母或数字 for (let i = 0; i < chars.length; i++) { const char = chars[i]; if (char !== "") { for (const [key, value] of Object.entries(morseCode)) { if (value === char) { result += key; break; } } } else { result += " "; } } return result; } // 使用示例 const plaintext = "Hello, World!"; const ciphertext = encryptMorseCode(plaintext); console.log(ciphertext); // ".... . .-.. .-.. --- --..-- / .-- --- .-. .-.. -.. -.-.--" const decryptedText = decryptMorseCode(ciphertext); console.log(decryptedText); // "HELLO, WORLD!"
此代码使用了一个摩斯密码字典,将字母和数字映射为摩斯密码,然后使用加密和解密函数将文本转换为摩斯密码或反之。