Bạn đã nghe về Caesar cipher chưa? Julius Caesar dùng kỹ thuật này để giấu tin nhắn bí mật!
Caesar cipher là kỹ thuật mã hóa nguyên thủy nhất. Ý tưởng chính: xoay vòng các chữ cái một số vị trí trên bảng chữ cái.
Ví dụ với x = 1: 'A' thành 'B', 'C' thành 'D', v.v.

Tự Tạo Caesar Cipher Converter
Chuyển chuỗi đầu vào thành mảng số nguyên (ASCII):
ascii = "test".chars.map(&:ord)
Phân tích:
charstách chuỗi thành mảng ký tự, trả về enumeratormapbiến đổi từng phần tử, trả về mảng mớiordtrả về mã ASCII của ký tự
Tương đương (Ruby 1.9+):
ascii = "test".chars.map { |c| c.ord }
Kết quả: [116, 101, 115, 116]
Thời Gian Xoay Vòng (Rotation)
Cộng số vị trí xoay vào mỗi mã ASCII:
shifted = ascii.map { |c| c + 5 } # => [121, 106, 120, 121]
Chuyển ngược số thành ký tự và nối chuỗi:
shifted.map { |c| c.chr }.join # => "yjxy"
Để giải mã, làm ngược lại: xoay trái cùng số vị trí.
Code Hoàn Chỉnh & Phiên Bản Thay Thế
Code đầy đủ tại đây - sinh ra 26 lần lặp cho chuỗi cho trước và xử lý wrapping (vòng quay).
Có phiên bản thay thế dùng Array#rotate.
Có thể bạn thích: Ruby string formatting