【发布时间】:2022-11-28 03:08:31
【问题描述】:
我检查了具有不同代码变体的不同网站,但找不到合适的答案。 我需要创建 2 个函数,其中: -1st 函数将使用密钥加密给定的消息,该密钥是字符串; 例如如果 Message=hello 且 key=123(因此键将为 1、2、3),输出应为“igomq” -2nd 将破译 我已经编写了代码,但这仅在密钥为“123”时有效。如何改进?
`
function cipher(message, key) {
const arrOfKeys = key.split("")
const cipheredMessage = []
let newLettersArr = []
for (let i = 0; i < message.length; i++) {
let remain = i % arrOfKeys.length
if (remain >= 0) {
let newLetter = message.charCodeAt(i) + (remain + 1)
newLettersArr.push(newLetter)
}
}
newLettersArr.forEach((letter) => {
let cipheredLetter = String.fromCharCode(letter)
cipheredMessage.push(cipheredLetter)
})
return cipheredMessage
}
function deCipher(message, key) {
const arrOfKeys = key.split("")
const cipheredMessage = []
let newLettersArr = []
for (let i = 0; i < message.length; i++) {
let remain = i % arrOfKeys.length
if (remain >= 0) {
let newLetter = message.charCodeAt(i) - (remain + 1)
newLettersArr.push(newLetter)
}
}
newLettersArr.forEach((letter) => {
let cipheredLetter = String.fromCharCode(letter)
cipheredMessage.push(cipheredLetter)
})
return cipheredMessage
}
console.log(cipher("hello", "123"))
console.log(deCipher("igomq", "123"))
`
【问题讨论】:
标签: javascript arrays caesar-cipher