Как исправить свой код расшифровки для Caesar Cypher в JavaScriptJavascript

Форум по Javascript
Ответить
Anonymous
 Как исправить свой код расшифровки для Caesar Cypher в JavaScript

Сообщение Anonymous »

Я довольно новичок в кодировании и изучении JavaScript как свой первый язык. Мне было поручено создать Caeser Cypher, который сдвигается и снимает 42 символа, а также вставил случайного символа в истории двух символов. log () внизу, и код решил это правильно и дал мне ответ, но когда я пытаюсь сделать свое собственное шифрование, а затем повернуть его в действие, он возвращает что -то другое. Что заставляет меня верить, что они могут быть проблемой с половиной шифрования половины кода. , восклицательные знаки и т. Д., Было бы. < /p>
const alphabet = "abcdefghijklmnopqrstuvwxyz";

// encryption code
function encrypt(message, shiftValue) {
let encryptedMessage = ""; // a place for the encrypted value to be stored
for (let i = 0; i < message.length; i++) {
let char = message.toLowerCase(); //converts everything to lowercase
if (alphabet.includes(char)) {
const index = alphabet.indexOf(char); // if alphabet inclues character find its index
const newIndex = (index + shiftValue) % alphabet.length; //adds shift value while looping around to the beginning of the alphabet
encryptedMessage += alphabet[newIndex]; //adds and stores the new shifted version as the encrypted message
}
if ((i + 1) % 2 === 0) {
//adds random letter every 2 character
const randomIndex = Math.floor(Math.random() * 26);
encryptedMessage += alphabet[randomIndex];
} else {
encryptedMessage += char; // if character is not part of alphabet passes it through to encrypted message
}
}

return encryptedMessage;
}

//decryption code
function decrypt(encryptedMessage, shiftValue) {
let decryptedMessage = "";

for (i = 0; i < encryptedMessage.length; i++) {
if ((i + 1) % 3 !== 0) {
// this ignores random letters that were added every 2 characters
const char = encryptedMessage.toLowerCase();
const index = alphabet.indexOf(char);
if (index >= 0) {
let newIndex = index - shiftValue;
while (newIndex < 0) newIndex += alphabet.length; //avoids negative index so decrypt doesnt return undefined
decryptedMessage += alphabet[newIndex % alphabet.length];
} else {
decryptedMessage += char; // if character is not part of alphabet passes it through to encrypted message
}
}
}

return decryptedMessage;
}

console.log(
decrypt(
"Iueuan jrxuq cjythdykwxaj mixkqtaeml ebv wHenckvbkei rqdmt fHukckvi.r Jbxuihus, tmxayiwfuxh sjxau amenhtv 'zQkhhuubyjkit' yjew jhxux mxydatij. zJxmu hvymhihj ajel kldlsuyjb dyju yid uekdh qIbkqsxa xsxqqdvduzb wuqzhdoi qjxwu waueo xjem jfxuy dpuntj dgkvuiwj.",
42
)
);


Подробнее здесь: https://stackoverflow.com/questions/794 ... javascript
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»