Mỗi đối tượng người dùng trong cơ sở dữ liệu của tôi có ID gia tăng (1, 2, 3, ...). URL để xem tiểu sử của người dùng chứa ID của đối tượng người dùng; ví dụ. http://www.example.com/users/1. Bằng cách này, mọi người có thể thấy có bao nhiêu người dùng trên trang web, tốc độ phát triển của userbase nhanh như thế nào. Tôi không muốn cung cấp thông tin đó.Cách tính ID cố định độ dài cố định tương tự như YouTube (ví dụ: 2WNrx2jq184)
Tôi muốn chuyển đổi ID gia tăng thành chuỗi dài cố định ở định dạng Base58, vì vậy URL sẽ trông giống như http://www.example.com/users/2WNrx2jq184 Ngoài ra, tôi cần chức năng đảo ngược chuyển đổi chuỗi trở lại ID ban đầu. Chức năng đảo ngược không nên dễ dàng để đảo ngược kỹ sư.
Mã Python tốt nhất tôi tìm thấy cho mục đích này là https://github.com/JordanReiter/django-id-obfuscator. Nó rất tốt, nhưng trong một số trường hợp, nó thêm một ký tự 0
và/hoặc .
, dẫn đến các chuỗi không nằm trong Base58 và không có độ dài cố định. (Xem utils.py dòng 24 và 29.)
Làm cách nào tôi có thể cải thiện django-id-obfuscator để tạo ID cố định dài 58 hoặc làm cách nào để tạo ID bị xáo trộn bằng Python?
Tôi đoán bạn muốn tránh tạo ra một số ngẫu nhiên và lưu trữ tài liệu tham khảo của nó để ID thực tế ở đâu đó trong kho dữ liệu? – Groo
https://github.com/JordanReiter/django-id-obfuscator/blob/master/id_obfuscator/base58.py - điều này không giống như chứa '0' hoặc' .'. – eumiro
@eumiro https://github.com/JordanReiter/django-id-obfuscator/blob/master/id_obfuscator/utils.py - nó xảy ra ở đây – Korneel