Я довольно новичок в кодировании и изучении 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
Как исправить свой код расшифровки для Caesar Cypher в JavaScript ⇐ Javascript
Форум по Javascript
-
Anonymous
1739585470
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[i].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[i].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
)
);
Подробнее здесь: [url]https://stackoverflow.com/questions/79440876/how-do-i-fix-my-decryption-code-for-caesar-cypher-in-javascript[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия