今天我生成哈希如下:
const Hashids = require('hashids');
const ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let number = 1419856
let hash = new Hashids('Salto do Pedro', 6, ALPHABET).encode(number)
console.log("Hash:", hash, ". Number:", number, ". Size:", hash.length)
所以控制台上打印的是:
[Running] node "c:\Users\pedro\Desktop\teste\testPedro.js"
Hash: YMMMMM . Number: 1419856 . Size: 6
[Done] exited with code=0 in 0.258 seconds
但是,如果我将变量“数字”更改为数字 1419857,结果是:
[Running] node "c:\Users\pedro\Desktop\teste\testPedro.js"
Hash: DRVVVVV . Number: 1419857 . Size: 7
[Done] exited with code=0 in 0.245 seconds
我的疑问是:我正在经历的字母表有 26 个字符,我定义 hashid 的最小大小为 6 个字符,我可以使用 6 个字符的最大 hashid 不会是 308.915.776 (26 * 26 * 26 * 26 * 26 * 26 )?为什么在数字 1.419.857 中他已经在我的 hashid 中增加了一个字符?