crypto-js를 사용하여 데이터를 암호화하기 위해 typescript 버전 3.7.2를 사용하고 있습니다.
알고리즘-sha256
하지만 내 코드가 잘못된 해시 데이터를 생성하고 있습니다.
코드는 다음과 같은 데이터를 해시하는 데 키를 사용하지 않고 잘 작동합니다.
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
비교할 해시 값 (결제 게이트웨이에서 전송)
e236e8fe62c54546b85dede32c432d4c73c27157840a8ba67cfc09270b53064a
온라인 웹 사이트 https://www.freeformatter.com/hmac-generator.html#ad-output에서 생성 된 해시 값
e236e8fe62c54546b85dede32c432d4c73c27157840a8ba67cfc09270b53064a
ieHash 온라인 웹 사이트에서 생성되고 결제 게이트웨이에서 전송 된 값이 일치합니다. 이는 코드에 문제가 있음을 의미합니다. 감사합니다
SHA256 HMAC를 계산할 것으로 예상하지만 실제로 메시지의 SHA256 해시를 계산하고 order_id + "|" + payment_id
있습니다. secret
SHA256 함수에 전달 된 인수는 무시됩니다.
교체 CryptoJS.SHA256
로 CryptoJS.HmacSHA256
예상대로 코드가 작동합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다