Tôi đang tạo dịch vụ rút ngắn liên kết và tôi đang sử dụng mã hóa/giải mã base64 của trường ID được tăng lên để tạo url của tôi. Một url với ID "6" sẽ là: http://mysite.com/Ng==URL shortener: phương pháp mã hóa tốt nhất?
tôi cũng cần phải cho phép người dùng tạo ra một tên url tùy chỉnh, như http://mysite.com/music
Dưới đây là của tôi (có thể bị lỗi) Cách tiếp cận cho đến nay. Giúp đỡ trong việc sửa chữa nó sẽ được đánh giá cao.
Khi ai đó tạo ra một liên kết mới:
- tôi nhận được ID liên kết lớn nhất từ cơ sở dữ liệu (nó không tự động tăng lên)
- Tăng ID bởi 1
- Tạo mã URL ngắn (http://website.com/[short tên url]) bởi base64_encoding rằng ID
- Chèn vào bảng liên kết: id, short_url_code, destination_url
Khi ai đó tạo ra một liên kết mới và vượt qua một URL tùy chỉnh ngắn:
- Kế hoạch của tôi đã được base64_decode chuỗi tùy chỉnh của họ và sử dụng như là liên kết ID, nhưng tôi đã không nhận ra rằng bạn có thể không chỉ base64_decode bất kỳ chữ và số và biến nó thành một số.
Có phương pháp mã hóa tốt hơn sẽ cho phép tôi chuyển bất kỳ số nào thành chuỗi ngắn và chuỗi nào thành số, vì vậy tôi luôn có thể tra cứu các url ngắn (cho dù tùy chỉnh hoặc tự tạo) bằng cách chuyển tên thành số và truy vấn liên kết có ID bằng số đó?
Xem thêm http://stackoverflow.com/questions/561486/how-to-convert-an-integer-to-the-shortest-url-safe-string-in-python re. Mã hóa Base64 trong URL – vladr