อัลกอริทึมการเข้ารหัสซีซาร์
อัลกอริทึม 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