使用节点生成 API 个令牌 - 大写和小写字母和数字?
Generating API tokens using node - upper and lower case letters and numbers?
我正在尝试在 expressjs 中生成 唯一 键/令牌。我正在使用 hat。但是它生成的密钥是数字和小写字母:
1b1a7af4e304fc0fa49216ce248ae574
我的代码:
var express = require('express');
var hat = require("hat");
var app = express();
app.get('/', function (req, res) {
res.send(hat());
});
但我更喜欢这样的键(大小写和数字的混合):
EzpoQlgvQESADxzAQX94uwPgoYX
知道我应该使用什么节点包来创建这样的密钥(大小写和数字的混合)吗?
请问这两种钥匙有什么区别?哪个更安全更好?
至于以这种形式生成 unique 键,我不确定是否有库,但最简单的解决方案可能是取消任何第三方代码并使用诸如 var key = require('crypto').randomBytes(64).toString('base64');
之类的一个班轮会给你同样好的结果,让你控制你的碰撞概率并定制你的钥匙来适应。
关于你的第二个问题哪个更好,取决于你对更好的分类。
关键的主要目标,例如他们 entropy 的级别。用非常简单的术语来说,同时具有大写和小写字母和数字会将您的每个字符熵增加到 62 种可能的组合,而只有小写字母和数字您将有 36 种可能的组合。
这意味着就熵而言,同样是简单的术语,一个 62 个字符的小写字母 + 数字键与一个 36 个字符长的大写字母 + 小写字母 + 数字键一样有效。
虽然使用较短的密钥可能对您的情况(或偏好?)有用,但您可以 运行 解决可能不区分大小写的不同技术的问题。
我正在尝试在 expressjs 中生成 唯一 键/令牌。我正在使用 hat。但是它生成的密钥是数字和小写字母:
1b1a7af4e304fc0fa49216ce248ae574
我的代码:
var express = require('express');
var hat = require("hat");
var app = express();
app.get('/', function (req, res) {
res.send(hat());
});
但我更喜欢这样的键(大小写和数字的混合):
EzpoQlgvQESADxzAQX94uwPgoYX
知道我应该使用什么节点包来创建这样的密钥(大小写和数字的混合)吗?
请问这两种钥匙有什么区别?哪个更安全更好?
至于以这种形式生成 unique 键,我不确定是否有库,但最简单的解决方案可能是取消任何第三方代码并使用诸如 var key = require('crypto').randomBytes(64).toString('base64');
之类的一个班轮会给你同样好的结果,让你控制你的碰撞概率并定制你的钥匙来适应。
关于你的第二个问题哪个更好,取决于你对更好的分类。
关键的主要目标,例如他们 entropy 的级别。用非常简单的术语来说,同时具有大写和小写字母和数字会将您的每个字符熵增加到 62 种可能的组合,而只有小写字母和数字您将有 36 种可能的组合。
这意味着就熵而言,同样是简单的术语,一个 62 个字符的小写字母 + 数字键与一个 36 个字符长的大写字母 + 小写字母 + 数字键一样有效。
虽然使用较短的密钥可能对您的情况(或偏好?)有用,但您可以 运行 解决可能不区分大小写的不同技术的问题。