Современные браузеры обеспечивают реализацию криптографических алгоритмов через объект window.crypto
. Вы можете посмотреть, что в данном случае означает «современный», по ссылке (внизу). Если вам подходит список поддерживаемых браузеров, вы можете достичь своей цели, например, так:
async function hash(target){
var buffer = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(target));
var chars = Array.prototype.map.call(new Uint8Array(buffer), ch => String.fromCharCode(ch)).join('');
return btoa(chars);
};
Он хеширует вашу строку (в байтах своей кодировки utf-8) с помощью SHA-256, а затем преобразует результат в base64.
Обратите внимание, что если вам не нужен криптографически надежный хеш (вы не уточнили цель) - тогда могут быть лучшие (более быстрые) альтернативы.