对于JavaScript中的字符串,我需要生成一个substirng,该substirng应该用作唯一的标识符(类似于哈希),从而降低了发生冲突的风险。但是,此哈希/子字符串的长度不应超过32个字节。
我需要这个,因为我必须将其存储在Solidity Smart Contract中作为该字符串的标识符。我发现有很多函数可以从JavaScript中的字符串获取和散列代码,但这不是我想要的。
10.9.0.18,tom,34.0.1.2:44395,Thu Apr 18 07:14:20 2019
10.9.0.10,jonas,84.32.45.2:44016,Thu Apr 18 07:16:06 2019
10.9.0.6,philip,23.56.222.3:55202,Thu Apr 18 07:16:06 2019
10.9.0.26,coolguy,12.34.56.7:53316,Thu Apr 18 07:16:06 2019
如果我有一个这样的字符串:“你好,这是一个聪明的问题”,我希望代表该字符串的哈希值,例如“ hllhsmrtqstin”。甚至可以小于32个字节,但是重要的是,无论字符串大小如何,都不要超过此长度。
我不是在寻找诸如sha256之类的东西,因为我需要一个可以被还原为原始字符串的人类readbale哈希,例如“ Hello World”>“ hlwld”
答案 0 :(得分:1)
您可以替换一些物品,例如
is
aeou
t
后跟一个h
字符。Hello, this is a smart question h ll h smr t q sti n
var string = 'Hello, this is a smart question'
result = string.toLowerCase().replace(/is|[aeou]|[^a-z]|t(?=h)/g, '');
console.log(result);