Mật mã Caesars - Caesars Cipher (Basic Algorithm)

One of the simplest and most widely known ciphers is a Caesar cipher, also known as a shift cipher. In a shift cipher the meanings of the letters are shifted by some set amount.

A common modern use is the ROT13 cipher, where the values of the letters are shifted by 13 places. Thus ‘A’ :left_right_arrow: ‘N’, ‘B’ :left_right_arrow: ‘O’ and so on.

Write a function which takes a ROT13 encoded string as input and returns a decoded string.

All letters will be uppercase. Do not transform any non-alphabetic character (i.e. spaces, punctuation), but do pass them on.

Here are some helpful links:

String.prototype.charCodeAt()
String.fromCharCode()


Mật mã Caesars
Một trong những thuật toán mã hóa đơn giản và được biết đến rộng rãi nhất là mật mã Caesar, còn được gọi là mật mã thay đổi. Trong một sự thay đổi mật mã, ý nghĩa của các chữ cái được dịch chuyển bởi một số lượng thiết lập.

Sử dụng hiện đại phổ biến là mật mã [ROT13] (https://en.wikipedia.org/wiki/ROT13), trong đó các giá trị của các chữ cái được dịch chuyển 13 vị trí. Như vậy ‘A’ :left_right_arrow: ‘N’, ‘B’ :left_right_arrow: ‘O’ và cứ thế.

Viết một hàm nhận chuỗi được mã hóa ROT13 làm đầu vào và trả về một chuỗi được giải mã.

Tất cả các chữ cái sẽ là chữ hoa. Không chuyển đổi bất kỳ ký tự không phải chữ cái nào (ví dụ: dấu cách, dấu câu), nhưng chuyển chúng thành.

Dưới đây là một số liên kết hữu ích:

[String.prototype.charCodeAt ()] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt)
[String.fromCharCode ()] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode)

Bạn hãy chỉnh sửa đoạn code dưới đây để phù hợp với yêu cầu của bài toán:

function rot13(str) { // LBH QVQ VG!
  
  return str;
}

// Change the inputs below to test
rot13("SERR PBQR PNZC");

/* rot13("SERR PBQR PNZC") should decode to "FREE CODE CAMP"
rot13("SERR CVMMN!") should decode to "FREE PIZZA!"
rot13("SERR YBIR?") should decode to "FREE LOVE?"
rot13("GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.") should decode to "THE QUICK BROWN DOG JUMPED OVER THE LAZY FOX." 
*/
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?