- Sqids là một thư viện mã nguồn mở tạo ID theo kiểu YouTube từ các con số
- ID được tạo ra ngắn, có thể sinh bằng bảng chữ cái tùy chỉnh và được đảm bảo không có xung đột
- Ví dụ về ID được cung cấp có dạng như
https://example.com/Lqj8a0
Lý do sử dụng Sqids
- Mục đích sử dụng chính của Sqids nằm ở hiệu ứng trực quan
- Khi muốn dùng ID thay cho số trong webapp, Sqids có thể là một lựa chọn tốt
- Các trường hợp sử dụng gồm rút gọn liên kết, dùng an toàn trong URL, ID sự kiện, mã hóa/giải mã không xung đột và mật khẩu dùng một lần
- Không phù hợp với dữ liệu nhạy cảm; nếu dùng làm ID người dùng, số lượng người dùng có thể bị lộ
Đặc điểm của Sqids
- Có thể tạo ID ngắn từ các số không âm
- Dễ mã hóa và giải mã
- Các ID được tạo tự động không chứa những từ chửi thề phổ biến
- Hỗ trợ xáo trộn bảng chữ cái cho ID tùy chỉnh
- Hỗ trợ 40 ngôn ngữ lập trình, trong đó 15 ngôn ngữ dùng thiết kế mới
- Tạo ra cùng một ID trên mọi phiên bản
- Kích thước thư viện nhỏ và có giấy phép cởi mở
Ý kiến của GN⁺
- Thư viện Sqids hữu ích cho các nhà phát triển muốn dùng ID ngắn, không xung đột thay cho số trong webapp
- Thư viện này cung cấp các ID hấp dẫn về mặt thị giác và hỗ trợ nhiều ngôn ngữ lập trình, giúp dễ tiếp cận hơn
- Mang lại cơ hội thuận lợi cho các nhà phát triển mã nguồn mở và được bảo hộ bản quyền theo giấy phép MIT
6 bình luận
Khá phù hợp để ngăn chặn việc crawl.
Bạn có thể giải thích kỹ hơn về việc dùng nó như thế nào để ngăn chặn crawling không?
Nếu URL đơn giản là
posts/1,posts/2,posts/3thì crawler sẽ thử chạy bằng cách thêm 1, 2, 3, 4, 5...Còn nếu URL có dạng
posts/L12Qsd,posts/dei24Athì có lẽ nó không làm được như vậyÀ! Cảm ơn bạn đã trả lời.
Tò mò không biết nó khác gì so với hashids nên tìm thử thì thấy khi nhập https://hashids.org sẽ được chuyển đến https://sqids.org/. Có vẻ như họ đã đổi tên.
https://sqids.org/faq#hashids
Ý kiến trên Hacker News
Khả năng suy ra insight kinh doanh từ các công ty dùng ID tuần tự
Thắc mắc về việc nhắc đến mã dùng một lần
Thất vọng vì không thể định dạng số nguyên 128-bit hoặc mảng byte
Trong ứng dụng Ruby thì dùng cách chuyển đổi sang cơ số cao
Việc lọc từ tục có thể trở thành gánh nặng ngay từ thiết kế
Thích dùng nanoid và bộ ký tự an toàn
Thảo luận về việc dùng chuỗi được tạo ngẫu nhiên
Bối rối về việc cung cấp liên kết cho 40 ngôn ngữ trong phần "Get Started"
Câu hỏi về cách điều chỉnh hoặc phát triển blocklist
Trong chủ đề này, nhiều người nhắc đến đây là cách tốt để che giấu insight từ ID/số