Mã hóa Base64

Base64 là gì?

Base64 là một chương trình mã hóa chuỗi ký tự bằng cách dùng thay thế các ký tự trong bảng mã ASCII 8 bit thông dụng thành bảng mã 6 bit. Nó thường được sử dụng để mã hóa các tập tin đa phương tiện (hình ảnh, âm thanh, video,…). Ký tự 64 trong Base64 là đại diện cho 64 ký tự trong bãng mã ASCII. Base64 thường được sử dụng trong việc truyền tải email. Tuy nhiên, ngày nay người ta đã sử dụng nó vào việc truyền tải hình ảnh trên website.

Base64 hoạt động như thế nào?

Quá trình thực hiện theo 4 bước:

  • Dữ liệu nhị phân được sắp xếp theo từng khối 24 bit (3 byte) liên tục.
  • Mỗi đoạn 24 bit được nhóm thành bốn phần 6 bit mỗi phần.
  • Mỗi nhóm 6 bit được chuyển đổi thành các giá trị ký tự Base64 tương ứng của chúng. Mã hóa Base64 chuyển đổi ba octet thành bốn ký tự được mã hóa. (mỗi octet có 8bits dữ liệu)
  • Người nhận sẽ phải đảo ngược quá trình này để khôi phục thông điệp ban đầu

Mã hóa MD5

MD5 là gì?

MD5 hay trong kỹ thuật người ta còn gọi là MD5 Message-Digest Algorithm, là một hàm băm mã hóa, được sử dụng để kiểm tra tính toàn vẹn của file người dùng tải về trên mạng hoặc copy giữa các thiết bị lưu trữ với nhau.

Lịch sử và lỗ hổng trên MD5

MD5 chỉ là một trong 3 thuật toán của Ronald Rivest. Hàm băm đầu tiên được tạo ra là MD2 vào năm 1989, được xây dựng cho các máy tính 8bit. Dù MD2 vẫn còn được sử dụng nhưng nó không dành cho những ứng dụng cần mức độ bảo mật cao, vì nó rất dễ bị tấn công bởi các kiểu hack thông thường.

MD2 sau đó được thay thế bằng MD4 vào năm 1990. MD4 được tạo cho các máy 32-bit và nhanh hơn MD2 khá nhiều. Tuy nhiên MD4 cũng có những điểm yếu và đã bị Internet Engineering Task Force đánh giá là lỗi thời.

MD5 được phát hành vào năm 1992 và cũng dành cho máy 32-bit. MD5 không nhanh như MD4 nhưng an toàn hơn. MD5 vẫn tồn tại những lỗ hổng bảo mật và SHA-1 được đề xuất để thay thế hàm băm này.

Đại học Carnegie Mellon thuộc Viện kỹ thuật phần mềm nói về MD5: "Các nhà phát triển phần mềm, Certification Authorities, các chủ sở hữu trang web và người dùng nên tránh sử dụng thuật toán MD5 mỗi khi có thể. Nghiên cứu trước đây đã chỉ ra rằng MD5 có thể bị phá vỡ về mặt mã hóa và không phù hợp để sử dụng".

Vào năm 2008, MD6 đã được đề xuất lên National Institute of Standards and Technology như một giải pháp thay thế cho SHA-3.

Mã hóa SHA

SHA (Secure Hash Algorithm) là một thuật toán băm dùng để chuyển một đoạn dữ liệu nhất định thành một đoạn dữ liệu có chiều dài không đổi với xác suất khác biệt cao.

Họ hàm băm SHA gồm: SHA-0, SHA-1, SHA-2, SHA-3

  • SHA0 ít được sử dụng trên thực tế;
  • SHA1 tương tự SHA0, nhưng đã khắc phục một số lỗi, chuỗi đầu ra của SHA1 có kích thước 160 bít và thương được biểu diễn thành 40 số hexa
  • SHA2 khắc phục lỗi của SHA1 và có nhiều thay đổi. Kích thước chuỗi đầu ra có thể là 224, 256, 384 và 512 bít;
  • SHA3 cho phép chuỗi đầu ra có kích thước không cố định.

SHA được sử dụng rộng rãi để đảm bảo tính xác thực và toàn vẹn thông điệp.