Почему модуль 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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