我想基于他们的id(每个用户都有一个唯一的id)为我的应用程序中的每个用户生成唯一的32字长哈希字符串。当我在搜索这个时,我发现了一个类似的问题。 How to generate random SHA1 hash to use as ID in node.js? Gabi Purcaru的回答建议将crypto
模块的createHash
与当前时间和随机字符串一起使用。我可以使用用户的唯一ID代替那个随机字符串,这样我就可以确保生成的字符串始终是唯一的。但这总是给我40个字符串长度哈希。但我想要它32串长度。如何使用相同的方法生成32字长的随机字符串?
crypto.createHash('sha1').update(current_date + uid).digest('hex'); //This always gives 40-word length string
我也提到了naomik对同一个问题的好答案。他建议使用crypto.randomBytes()
。但是我们怎样才能确保它永远不会再生成相同的字符串呢?
答案 0 :(得分:1)
使用md5
let hash = crypto.createHash('md5').update(current_date + uid).digest('hex');
答案 1 :(得分:0)
crypto.createHash('sha1').update(current_date + uid).digest('hex').slice(0, 32);
将创造您需要的东西