Я пытаюсь расшифровать закодированную строку (которая на самом деле закодирована в java с использованием провайдера bouncyCastle). Поскольку я не вижу эквивалентного алгоритма для «PBEWITSHA256AND256BITAES-CBC-BC» в nodejs. Не могли бы вы предложить мне, как я могу расшифровать зашифрованное значение (которое было зашифровано в java) в nodejs.
Я пробовал несколько подходов, но не смог найти решение.
Из Явы: Ниже приведен подход
мы получили результат в виде строки, которая является шестнадцатеричной строкой.
Из Нодейс: Я попытался расшифровать с помощью пакета nodejs-crypto.
Может ли кто-нибудь предложить мне подход.




Эта схема PBE не является экземпляром PBKDF2 (PKCS8); это пример схемы PKCS12 PBE, которая похожа по концепции, но сильно отличается в деталях, которые жизненно важны для криптографии. Вы можете "легко" сказать это, посмотрев OID: https://www.bouncycastle.org/oids.html :-)
Я не вижу никаких намеков на то, что nodejs-crypto раскрывает эту схему или PKCS12, хотя внутренне использует OpenSSL, который реализует обе.
Вы можете закодировать его самостоятельно, следуя спецификации в RFC 7292 Приложение B и C (которая на самом деле все еще широко используется, хотя в документе говорится, что она устарела).
В качестве альтернативы https://github.com/digitalbazaar/forge (чистый js) поддерживает PKCS12, используя неупомянутый (внутренний) модуль forge.pbe.generatePkcs12Key (фактически ключ и IV), который мне кажется правильным при быстром сканировании (но не тестировался).
Привет, Дэйв, я столкнулся с некоторыми проблемами при попытке расшифровать с помощью Forge. мое зашифрованное сообщение представляет собой массив байтов, когда я попытался преобразовать его в forge.util.createBuffer, он возвращает значение данных как пустое. forge.util.createBuffer (зашифрованное сообщение)
Большое спасибо за вашу помощь, Дэйв, это сработало для меня. использование forge.pbe.generatePkcs12Key предоставило успешный ключ и iv и теперь смогло расшифровать данные.
Спасибо за ваш ответ, Дейв, я посмотрю и попытаюсь сгенерировать ключ и iv, используя forge.pbe.generatepkcs12Key, и проверю то же самое. я обнаружил, что основная проблема связана со значениями ключа и iv при сравнении с java и nodejs.