Wie repariere ich meinen Entschlüsselungscode für Caesar Cypher in JavaScript?JavaScript

Javascript-Forum
Anonymous
 Wie repariere ich meinen Entschlüsselungscode für Caesar Cypher in JavaScript?

Post by Anonymous »

Ich bin ziemlich neu im Codieren und Lernen von JavaScript als meine Muttersprache. Ich wurde beauftragt, eine Caeser -Cypher zu erstellen, die sich um 42 Zeichen verschiebt und entpackt und gleichzeitig ein zufälliges Zeichen jemals zwei Zeichen einfügte. Log () unten, und der Code hat so korrekt gelöst und mir die Antwort gegeben, aber wenn ich versuche, meine eigene Verschlüsselung zu erstellen und sie dann umzukehren, gibt er etwas anderes zurück. Das lässt mich glauben, dass sie ein Problem mit der Verschlüsselungshälfte des Codes sein können. < /p>
Ich bin mir auch nicht sicher , Ausrufezeichen usw., wäre. pre class = "snippet-code-js Lang-js hübschesPrint-override">

Code: Select all

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
)
);

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post