Я следовал учебнику, чтобы использовать открытый ключ для шифрования данных и использования закрытый ключ для расшифровки данных в браузере.
Но когда я пытаюсь использовать закрытый ключ для шифрования данных, возникает ошибка Uncaught (in promise) DOMException: key.usages does not permit this operation
.
Как использовать закрытый ключ для шифрования данных в API веб-криптографии?
И я также ищу библиотеку javascript, которая позволяет мне генерировать пары ключей RSA, шифровать и расшифровывать данные в браузере. Я нашел некоторую библиотеку javascript RSA, но все они должны использовать команды open-ssl для создания пар ключей RSA.
как использовать закрытый ключ для шифрования данных в API веб-криптографии
Ответы (1)
Вы не можете шифровать с помощью закрытого ключа в API-интерфейсах Web Crypto.
С RSA технически возможно зашифровать данные с помощью закрытого ключа, которые затем можно расшифровать с помощью открытого ключа. Но поскольку открытый ключ считается общедоступным, шифрование данных закрытым ключом не обеспечивает секретности.
Шифрование данных с помощью закрытого ключа позволяет публике убедиться, что данные были зашифрованы кем-то, у кого есть закрытый ключ. Это основа для криптографических подписей. Но поскольку шифрование данных с помощью RSA требует больших вычислительных ресурсов, вместо того, чтобы шифровать весь блок данных, мы обычно берем криптографический хэш и просто шифруем хэш.
API-интерфейсы Web Crypto сгенерируют для вас ключи RSA, а ссылка, которую вы предоставили, даже показывает, как это сделать.