Don't try making the login name longer, you'll probably find loads of places it breaks.
Note that you don't have a problem with the number of possible login names (you only get
UID_MAX-UID_MIN uids anyway, which is 59,000 on my system).
The problem is just with how descriptive they are, but fortunately there's another field intended to be descriptive: the GECOS/comment field. Just put the URL in there, and make the username either a 32-character hash of that, or simply the UID in base 10.
Then, best case you can always hash the URL to get UID, and worst case you need a reverse lookup from URL to UID, which is pretty trivial for 59,000 items - even a grep of
/etc/passwd would be sufficient.