我正在尝试在expressjs中生成唯一键/令牌。我正在使用hat。但它产生的关键是数字和小写字母:
1b1a7af4e304fc0fa49216ce248ae574
我的代码:
var express = require('express');
var hat = require("hat");
var app = express();
app.get('/', function (req, res) {
res.send(hat());
});
但我更喜欢这样的键(大小写和数字的混合):
EzpoQlgvQESADxzAQX94uwPgoYX
任何想法我应该用什么节点包来创建关键字(大小写和数字的混合)?
顺便说一下,这两种键之间有什么区别?哪个更安全,更好?
答案 0 :(得分:2)
就这种形式生成唯一键而言,我不确定是否有库,但最简单的解决方案可能是取消任何第三方代码并使用单行代码,例如{ {1}}会给你带来同样好的结果,让你控制你的碰撞概率并自定义你的钥匙。
至于你的第二个问题哪个更好,这取决于你对更好的分类。
密钥的主要目标,例如entropy的级别。简单来说,同时使用大写和小写字母和数字可以将每个字符的熵增加到62种可能的组合,而只有小写字母和数字则可以有36种可能的组合。
这意味着就熵而言,同样是简单的术语,62个字符的小写+数字键与36个字符的长大写+小写+数字键一样有效。
虽然拥有较短的密钥可能对您的情况(或偏好?)有用,但您可能遇到可能不区分大小写的不同技术问题。