programing

문자열의 HmacSHA256 서명을 생성하는 방법

javamemo 2023. 9. 17. 12:04
반응형

문자열의 HmacSHA256 서명을 생성하는 방법

문자열의 HmacSHA256 서명을 php로 만들 수 있는 방법이 있습니까?

용도:

$sig = hash_hmac('sha256', $string, $secret);

어디에$secret당신의 열쇠입니다.

이 기능이 도움이 될 수 있습니다.

HMAC 메서드를 사용하여 키가 있는 해시 값 생성


예를 들어, 코드의 다음 부분:

$hash = hash_hmac('sha256', 'hello, world!', 'mykey');
var_dump($hash);

다음과 같은 출력을 제공합니다.

string '07a932dd17adc59b49561f33980ec5254688a41f133b8a26e76c611073ade89b' (length=64)


그리고 사용할 수 있는 해싱 알고리즘 목록을 보려면 을 참조하십시오.

다음은 HMAC-SHA-256으로 PSP를 호출하기 전에 데이터 트랜잭션 서명(스위스 결제 솔루션)의 예입니다.

몇몇 개발자들에게 도움이 되기를 바랍니다.

$hmacKey    = 30911337928580013;

$merchantId = 1100004624;
$amount     = $total * 100;
$currency   = 'EUR';
$refno      = $orderId;

// HMAC Hex to byte
$secret     = hex2bin("$hmacKey");

// Concat infos
$string     = $merchantId . $amount. $currency . $refno;

// generate SIGN
$sign       = bin2hex(hash_hmac('sha256', $string, $secret)); 

참고: 머천트 ID와 HMAC 키는 모두 여기에서 사용할 수 있는 Datatrans 설명서에 있습니다. https://admin.sandbox.datatrans.com/showcase/doc/Technical_Implementation_Guide.pdf

이게 길이야.laravel에서 hash_hmac을 생성하는 방법입니다.100% 효과가 있습니다.

$sig = hash_hmac('sha256', $request->getContent(), 'secret value' );

평판이 안좋아서 답변을 못드리지만 @Melomans way와 ZPider의 답변을 조합하면 사용만 가능합니다

$hash       = hash_hmac('sha256', $string, $secret);

올바른 데이터 전송을 위해

데이터에 hash_hmach로 서명하면 됩니다. 다음 작업만 수행하면 됩니다.

  1. 비밀 키를 가져오세요.
  2. 암호 모드나 방법을 선택합니다. 예를 들어 sha1,sha256 등입니다.
  3. 암호화된 데이터를 원하는 대로 호출할 수 있는 변수를 만듭니다. 따라서 코드는 이렇게 나타납니다.

$signData= hash_hmac("sha256",$dataToBeSigned,$yourSecretKey);

언급URL : https://stackoverflow.com/questions/2707967/how-can-i-generate-a-hmacsha256-signature-of-a-string

반응형