Я использую модуль Crypto для переваривания строка для хэширования и преобразует полученный буфер в строка. Полученная функция возвращает обещание
Это мой код:
Код: Выделить всё
export default async function hashPassword(unHashedPassword) {
return crypto.subtle.digest('SHA-256', unHashedPassword)
.then((hash) => _arrayBufferToBase64(hash))
}
function _arrayBufferToBase64( buffer ) {
let binary = '';
const bytes = new Uint8Array( buffer );
const len = bytes.byteLength;
for (let i = 0; i < len; i++) {
binary += String.fromCharCode( bytes[ i ] );
}
return btoa( binary );
}
Функция затем используется для хэширования различных бит данных, которые пользователь имеет ввод в форму. Я использую это так: < /p>
Код: Выделить всё
const licenseKey = formData.get('licenseKey')
const hashedPasswordPromise = hashPassword(licenseKey)
hashedPasswordPromise.then(hashedPassword => {
console.log("Hashed License:", hashedPassword)
})
< /code>
Однако, когда этот раздел кода запускается, я получаю следующую ошибку: < /p>
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'digest')Во -первых, я подумал, что библиотека не хватает Полем Я могу подтвердить, что это не так, поскольку это проиндексируется IDE. /code> (я использовал http в то время). Поэтому я затем настраиваю nginx с помощью SSL, чтобы обратить прокси -серверы на следующий как https . Сертификаты добавляются в ключ -матч и доверяют (никаких предупреждений в браузере, все безопасно). Тем не менее, проблема сохраняется. Единственные результаты, которые я мог найти, были либо именно то, что я сделал с Nginx или для использования-Experimental-https , который доступен только в dev , а не в производстве, что не является Хорошо. < /p>
Я в тупике. Есть предложения о том, как это исправить?
Подробнее здесь: https://stackoverflow.com/questions/793 ... -typeerror
Мобильная версия