машинописная крипто- js как получить sh данные, используя алгоритм и ключ sha256 - PullRequest
1 голос
/ 12 февраля 2020

Я использую машинописную версию 3.7.2 для шифрования данных с использованием crypto- js.

Алгоритм - sha256

Но мой код генерирует неправильные хешированные данные.

Код работает нормально без использования ключа для ха sh данных, подобных

CryptoJS.SHA256(message).toString(CryptoJS.enc.Hex)

Но когда я использую ключ, он делает неправильное хеширование

Вот полный код. Надеюсь, вы можете помочь. Заранее благодарим

    import CryptoJS from 'crypto-js';

    let order_id = 'order_EFph1itQK4z1NQ',
    let payment_id = 'pay_EFph2XRs3vkaB8',

    let generated_signature = CryptoJS.SHA256(order_id + "|" + payment_id, secret).toString(CryptoJS.enc.Hex);
 // secret is some key

значение сгенерированной подписи (наш конец)

1a45e3be48f64911d372bcccd9c4dbe7dca9dab716603e4e80c2e55f701bde7a

Значение ha sh для сравнения (отправлено платежным шлюзом)

e236e8fe62c54546b85dede32c432d4c73c27157840a8ba67cfc09270b53064a

Значение ha sh, сгенерированное онлайн-сайтом https://www.freeformatter.com/hmac-generator.html#ad -output

e236e8fe62c54546b85dede32c432d4c73c27157840a8ba67cfc09270b53064a

ieHa sh Значение, сгенерированное онлайн-сайтом и отправленное платежным шлюзом, совпадает , это означает, что что-то не так с нашим кодом. Спасибо

1 Ответ

2 голосов
/ 12 февраля 2020

Вы ожидаете вычислить SHA256 HMA C, но на самом деле вы вычисляете SHA256 га sh сообщения order_id + "|" + payment_id. Аргумент secret, переданный в функцию SHA256, игнорируется.

Замените CryptoJS.SHA256 на CryptoJS.HmacSHA256, и ваш код будет работать как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...