Được nhóm theo tình huống, không theo định dạng
Danh mục này không hẳn là một chủ đề mà giống một ngăn kéo hơn. Các công cụ trong đó là những phép chuyển đổi nhỏ bạn cần trong khi việc chính là một thứ khác, nên chúng được liệt kê ở đây theo tình huống bạn đang gặp khi tìm đến chúng.
“Có một chuỗi khó hiểu trong log này và tôi không biết nó là gì.” Nếu nó trông giống 550e8400-e29b-41d4-a716-446655440000, trình giải mã UUID sẽ cho bạn biết phiên bản, và với v1, v6 và v7, cả dấu thời gian nó được tạo ra. Nếu nó trông giống SGVsbG8= hoặc kết thúc bằng ==, đó là Base64 — hãy giải mã nó. Nếu đó là một con số mười chữ số trần bắt đầu bằng 17, đó là một dấu thời gian Unix gần với hiện tại.
“Tôi cần một ID.” Trình tạo UUID tạo ra phiên bản v1 và từ v3 tới v7, và có thể tạo hàng nghìn giá trị cùng lúc để khởi tạo dữ liệu cho một cơ sở dữ liệu thử nghiệm.
“Dấu thời gian này bị sai lệch tới cả nghìn lần.” Giây hay mili giây — trình chuyển đổi dấu thời gian xử lý cả hai và cho bạn biết bạn đã đưa vào loại nào.
“Tôi cần biến data URI này thành một tệp thật.” Hoặc ngược lại: Base64 sang ảnh.
“Màu đó chính xác là màu gì?” Công cụ chọn màu để chuyển đổi giữa các ký hiệu màu, công cụ chọn màu từ ảnh để đọc một giá trị từ một ảnh chụp màn hình hay bản phác thảo.
“Cái này cần là snake_case mà nó đang là camelCase.” Trình chuyển đổi kiểu chữ.
“0xDEADBEEF là bao nhiêu ở hệ thập phân, và điều gì xảy ra nếu nó có dấu?” Trình chuyển đổi hệ đếm số, khác với hầu hết các công cụ khác, có xử lý cả số âm và bù hai.
Các định danh lộ nhiều thông tin hơn người ta tưởng
Đây là điều xuyên suốt đáng nói nhất ở đây, vì không trang công cụ đơn lẻ nào sở hữu riêng nó: nhiều định dạng trong số này mang theo thông tin bạn không hề định công khai.
UUID v1 nhúng cả dấu thời gian lẫn địa chỉ MAC của máy. Đó là thiết kế ban đầu — tính duy nhất được đảm bảo bởi “chiếc máy này, vào thời điểm này”. Điều đó cũng có nghĩa là một UUID v1 trong một URL công khai cho bất kỳ ai quan tâm biết chính xác khi nào bản ghi được tạo ra, và cho họ một định danh cố định cho máy chủ đã tạo ra nó. Bạn có thể tự kiểm chứng điều này bằng cách dán một UUID vào trình giải mã.
UUID v7 cũng nhúng một dấu thời gian Unix, một cách có chủ đích, vì việc sắp xếp theo ID và sắp xếp theo thời gian tạo là cùng một thứ mang lại lợi ích rất lớn cho vị trí chỉ mục cơ sở dữ liệu. Cái giá phải trả là cùng một sự rò rỉ: ID v7 có thứ tự, nên việc công khai chúng tiết lộ thời điểm tạo và cho phép ai đó ước tính bạn tạo bao nhiêu bản ghi mỗi giờ chỉ bằng cách quan sát hai ID trong số đó.
v4 là phiên bản không tiết lộ gì cả — 122 bit ngẫu nhiên và không có cấu trúc. Đó là lý do nó vẫn là lựa chọn mặc định cho bất cứ thứ gì hướng tới người dùng, và vì sao “dùng v7 cho khóa chính, v4 cho định danh công khai” là một quy tắc hợp lý cho cùng một bảng dữ liệu.
Base64 tiết lộ mọi thứ, ngay lập tức, cho bất kỳ ai. Đó không phải là che giấu. Một secret trong Kubernetes được mã hóa Base64 để giá trị nhị phân có thể tồn tại được trong YAML, không phải để bảo vệ chúng.
Mọi thứ trên trang này đều chạy cục bộ, và với danh mục này điều đó quan trọng hơn hầu hết các danh mục khác: định danh, token và các đoạn log trong môi trường sản xuất chính là loại dữ liệu không nên bị dán vào máy chủ của người khác để giải mã.