是base64编码的url安全吗?

我正在使用node.bcrypt.js散列函数返回node.js中的hex数字作为密码重置标记。

user.reset_password_token = require('crypto').randomBytes(32).toString('hex' ); 

我还应该base64编码令牌之前,我通过它在URL(即:链接重置电子邮件)?

这样做有什么好处吗?

我似乎记得base64编码可以包含正斜杠,这将混乱的path:

  var token = user.reset_password_token; //is there any benefit to doing base64 encoding? var encoded_token = new Buffer(token).toString('base64'); var reset_link = 'http://example.com/reset/'+ encoded_token; sendResetLink( reset_link ); 

base64确实可以包含正斜杠,但base32不能!

嘿家伙我解决了使用URLSafeBase64 nodejs LIB在https://www.npmjs.org/package/urlsafe-base64

 var email =email_lines.join("\r\n").trim(); var base64EncodedEmail = URLSafeBase64.encode(new Buffer(email)); gmail.users.messages.send({userId:"me", resource: {raw:base64EncodedEmail} }, callbackFn});