Websafe encoding of hashed string in nodejs

I am creating a re-director of sorts in nodejs. I have a few values like userid // superid

these I would like to hash to prevent users from retrieving the url and faking someone else's url and also base64 encode to minimize the length of the url created.

http://myurl.com/~hashedtoken where un-hashed hashtoken could be something like this 55q322q23 55 = userid

I thought about using crypto library like so:

crypto.createHash('md5').update("55q322q23").digest("base64");

which returns: u/mxNJQaSs2HYJ5wirEZOQ== The problem here is that I have the / which is not considered websafe so I would like to strip the un-safe letters from the base64 list of letters, somehow. Any ideas about this or perhaps a better solution to the problem at hand?

You could use a so called URL safe variant of Base64. The most common variant, described in RFC 4648, uses - and _ instead of + and / respectively, and omits padding characters (=).

Most implementations of Base64 support this URL safe variant too, though if yours doesn't, it's easy enough to do manually.