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