อัลกอริทึมการเข้ารหัสซีซาร์
อัลกอริทึม Caesar Cipher เป็นหนึ่งในเทคนิคการเข้ารหัสที่ง่ายและเป็นที่รู้จักมากที่สุด เป็นรหัสทดแทนประเภทหนึ่งซึ่งแต่ละตัวอักษรในข้อความธรรมดาจะถูกแทนที่ด้วยตัวอักษรบางตำแหน่งที่แน่นอนตามตัวอักษร
ตัวอย่าง
ด้วยการเลื่อนไปทางซ้ายเป็น 3 D จะถูกแทนที่ด้วย A, E จะกลายเป็น B เป็นต้น เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงในการเข้ารหัสเป็นอาร์กิวเมนต์แรกและจำนวนกะเป็นอาร์กิวเมนต์ที่สอง
จำนวนกะสามารถเป็นจำนวนเต็มบวกหรือลบได้ (การเลื่อนค่าบวกหมายถึงการเลื่อนไปทางขวาในขณะที่ค่าลบไปซ้าย)
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const str = 'thisIsAString';
const getMap = (legend, shift) => {
return legend.reduce((charsMap, currentChar, charIndex) => {
const copy = { ...charsMap };
let ind = (charIndex + shift) % legend.length;
if (ind < 0) {
ind += legend.length;
};
copy[currentChar] = legend[ind];
return copy;
}, {});
};
const encrypt = (str, shift = 0) => {
const legend = 'abcdefghijklmnopqrstuvwxyz'.split('');
const map = getMap(legend, shift);
return str
.toLowerCase()
.split('')
.map(char => map[char] || char)
.join('');
};
console.log(encrypt(str, 6)); ผลลัพธ์
ต่อไปนี้เป็นผลลัพธ์บนคอนโซล -
znoyoygyzxotm