2009-06-18 26 views
5

Tôi hơi tò mò về lý do tại sao một người muốn sử dụng mã hóa hex trên base64. Dường như với tôi rằng cơ sở 64 hiệu quả hơn. Đặc biệt, tại sao cơ sở dữ liệu dường như luôn sử dụng mã hóa hex? Nó có phải là một vấn đề lịch sử, hoặc tôi thiếu một cái gì đó về mã hóa hex?Mục đích của mã hóa hex cho dữ liệu nhị phân là gì?

Trả lời

5

Bạn phải là người chuyên nghiệp thực sự để đọc BASE64 ngoài màn hình.

Trong Oracle, khi tôi chạy HEXTORAW, tôi có thể biết một số điều trong lĩnh vực RAW, nhưng tôi không thể với BASE64.

Giống như, khi tôi thấy rất nhiều 0x3F, tôi biết có điều gì đó có mã hóa.

Và nội bộ, đây chỉ là các byte nhị phân, không cần phải mã hóa chúng nhưng để hiển thị cho một người ở phía bên kia của màn hình.

+0

Bạn chỉ cần chuyển đổi nó thành base64 nếu bạn cần gửi một nơi nào đó qua ASCII, để được giải mã trở lại thành nhị phân và được sử dụng. –

0

Tôi sẽ tưởng tượng cơ sở dữ liệu của bạn thực sự lưu trữ dữ liệu dưới dạng nhị phân, nhưng trình chỉnh sửa truy vấn sẽ hiển thị nó bằng cách sử dụng mã hóa hex. Đây là những gì SQL Server Query Analyzer sẽ làm.

0

Tôi đoán nó chỉ là một vấn đề sở thích cá nhân ... Hex là của xa dễ dàng hơn cho tôi để đọc sau đó một cái gì đó trong Base32 hoặc Base64

3

Đó là một sự thỏa hiệp tốt giữa việc sử dụng không gian hiệu quả và khả năng đọc. Các mẫu bit trở nên rất rõ ràng trong hex, trong khi các cơ sở khác không rõ ràng.

dễ đọc hơn, 0x8080 hoặc 32896? Tôi sẽ nói giá trị hex là.

Nó cũng có thuộc tính tốt đẹp của mỗi chữ số hex bằng với một nibble (do đó mỗi cặp bằng một byte).

Nó là dễ dàng hơn để làm cho tinh thần của hex trong đầu của bạn hơn cơ sở 64.

Theo như cơ sở dữ liệu, cũng cần lưu ý rằng có một sự khác biệt giữa cách dữ liệu được hiển thị và cách nó được lưu trữ. Nó rất có thể chỉ hiển thị dữ liệu dưới dạng hex.

2

Base64 không hoạt động nếu bạn muốn sử dụng các giá trị kết quả dưới dạng tên tệp trên Windows, vì base64 sử dụng cả chữ hoa và chữ thường. Tôi chắc chắn có những lúc khác khi nó không thể được sử dụng vì những lý do tương tự.

Đồng ý với các câu trả lời khác về khả năng đọc - chữ số hex căn chỉnh độc đáo trên byte 8 bit, trong khi chữ số "base64" không và một chữ số có thể chứa các phần của hai byte.

+0

Một chút của một trường hợp góc, nhưng một lý do tốt để không sử dụng base64 tất cả như nhau. –

1

Trong trường hợp lưu trữ chuỗi (với mã hóa XML có khả năng "an toàn"), bạn có thể đạt được hiệu quả cao hơn với ASCII 85 vì nó là 5/4 bloat thay vì 4/3 cho base64.

Nhưng thậm chí khó đọc "" hơn là base64. Và không nhiều ứng dụng hỗ trợ nó thường xuyên như vậy, bạn phải viết các lớp/chức năng của riêng bạn để thực hiện việc mã hóa và giải mã.

Các vấn đề liên quan