在安全Node.js的随机令牌 [英] Secure random token in Node.js
问题描述
在<一个href=\"http://stackoverflow.com/questions/8838624/nodejs-send-email-on-registration/8842959#8842959\">this 埃里克问题需要产生在Node.js的一个安全随机令牌有生成一个随机的缓冲方法 crypto.randomBytes
。然而,在节点的base64编码是不是网址安全,它包括 /
和 +
而不是 -
和 _
。因此,最简单的方法来产生这样的道理,我发现是
In this question Erik needs to generate a secure random token in Node.js. There's the method crypto.randomBytes
that generates a random Buffer. However, the base64 encoding in node is not url-safe, it includes /
and +
instead of -
and _
. Therefore, the easiest way to generate such token I've found is
require('crypto').randomBytes(48, function(ex, buf) {
token = buf.toString('base64').replace(/\//g,'_').replace(/\+/g,'-'));
});
有没有更优雅的方式?
Is there a more elegant way?
推荐答案
尝试<一个href=\"https://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback\">crypto.randomBytes():
require('crypto').randomBytes(48, function(err, buffer) {
var token = buffer.toString('hex');
});
在十六进制编码工作在节点v0.6.x或更高版本。
The 'hex' encoding works in node v0.6.x or newer.
这篇关于在安全Node.js的随机令牌的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!