Khi một chuỗi như "Xin chào thế giới" được mã hóa, các thuật toán có chuyển đổi chuỗi này thành nhị phân hoặc ASCII không?
Chà, câu trả lời phụ thuộc vào việc bạn đang nói về mật mã lịch sử hay hiện đại.
Trước đây, các phương thức mã hóa thường lấy chuỗi dưới dạng một chuỗi ký tự và biến đổi chúng theo cách đó. Đôi khi, họ thực hiện ánh xạ bên trong, chẳng hạn như "A" -> 0, "B" -> 1, v.v., tuy nhiên, điều đó thường được thực hiện bên trong thuật toán. Nói chung, họ không chuyển đổi các ký tự thành nhị phân (lúc đó sẽ được coi là một lựa chọn kỳ quặc) và chắc chắn không phải là ASCII (lúc đó không tồn tại).
Mặt khác, các thuật toán mã hóa hiện đại nói chung [1] lấy các chuỗi bit hoặc byte làm đầu vào và tạo ra một chuỗi bit hoặc byte làm đầu ra. Để mã hóa một chuỗi, bạn sẽ chuyển đổi nó thành một chuỗi như vậy (cho dù sử dụng ASCII, Unicode hay EBCDIC, thuật toán sẽ không quan tâm) và thuật toán đã hoạt động trên đó.
Ngoài ra, nếu đây là một tệp, ASCII vẫn có thể được sử dụng để mã hóa dữ liệu chứ?
Chà, một tệp gồm các ký tự ASCII có thể được xem dưới dạng một chuỗi byte và vì vậy các thuật toán mã hóa hiện đại sẽ xử lý nó tốt.
[1]: Một ngoại lệ: Các sơ đồ mã hóa bảo toàn định dạng, thường xem đầu vào là cơ sở-$b$ chuỗi, ở đâu $b$ có thể không phải là một sức mạnh của hai.