Почему модуль JS 'Crypto' дает TypeError?Javascript

Форум по Javascript
Anonymous
Почему модуль JS 'Crypto' дает TypeError?

Сообщение Anonymous »

фон:
Я использую модуль 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 );
}
Этот код живет в файле с именем hasher.js в моей папке libs my nextjs app.
Функция затем используется для хэширования различных бит данных, которые пользователь имеет ввод в форму. Я использую это так: < /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

Вернуться в «Javascript»