Мне нужно сгенерировать subtirng, который должен работать как уникальный идентификатор (что-то вроде хэша), так что с уменьшенным риском коллизий, для строки в JavaScript.Однако длина этой хеш / подстроки не должна превышать 32 байта.
Мне это нужно, потому что я должен хранить его в интеллектуальном контракте Solidity в качестве идентификатора этой строки.Я нашел много функций для получения и хэш-кода из строки в JavaScript, но это не то, что я ищу.
String.prototype.hashCode = function() {
var hash = 0,
i, chr;
if (this.length === 0) return hash;
for (i = 0; i < this.length; i++) {
chr = this.charCodeAt(i);
hash = ((hash << 5) - hash) + chr;
hash |= 0; // Convert to 32bit integer
}
return hash;
};
Если у меня есть строка, подобная этой: «Здравствуйте, этоумный вопрос ", я ожидаю хеш, который представляет строку, например" hllhsmrtqstin ".Может быть даже меньше, чем 32 байта, но важно, чтобы эта длина не превышала эту длину, независимо от размера строки.
NB Я не ищу что-то вроде sha256, потому что мне нужен человеческий хэш readbale, который можно было бы преобразовать висходная строка, другой пример "Hello World"> "hlwld"