문제

내 웹 사이트에서 라이센스 키 생성기를 구현하려고하지만 PHP에 대한 지식은 거의 없습니다! 내 (Cocoa) 응용 프로그램에서 rsa_sign 함수 (C#)를 사용하는 시스템 확인을 통합합니다 ... PayPal IPN 알림 시스템을 사용하여 자동으로 라이센스 키를 생성하고 보내고 싶습니다 ... RSA 키를 사용하여 PHP에서 문자열에 서명하는 방법을 정말로 모릅니다 !!! PHP에서 나는 OpenSS_Sign 함수 만 알고 있지만 동일하지는 않습니다! 또는 DSA 서명 방법을 사용하는 것이 더 좋고 쉽습니까 ???

도와주세요!

모든 답장에 미리 감사드립니다 !!!

도움이 되었습니까?

해결책

당신은 원합니다 OpenSSL_Sign ().

편집하다:

  • 메시지 다이제스트가 확인하는 데 사용하려는 메시지인지 확인하십시오.
  • Base64 출력을 다른 서명과 비교하여 테스트하지 말고 C# 코드의 서명을 확인하여 테스트하십시오. 동일한 데이터의 동일한 키를 가진 두 개의 유효한 서명이 다른 이진 표현을 갖는 것이 가능하다고 생각합니다.

다른 팁

고맙습니다! 당신이 옳습니다!

문제를 발견했습니다. OpenSSL_SIGN과 함께 사용하는 해시 문자열입니다! 이 코드는 Objective-C입니다.

NSString *stringToEncript = @"test";

const char *clearText = [stringToEncript UTF8String];

unsigned char md[SHA_DIGEST_LENGTH];
SHA1((unsigned char *)clearText, strlen(clearText), md);

for(int i=0; i<SHA_DIGEST_LENGTH; i++)
    printf("%x", md[i]);

그리고 PHP에서 나는 다음을 썼습니다.

$stringToEncrypt = "test";

$hash = sha1(utf8_encode($stringToEncrypt));
echo $hash;

첫 번째 코드의 출력은 다음과 같습니다.

A94A8FE5CCB19BA61C4C873D391E987982FBBD3

두 번째 코드의 출력은 다음과 같습니다.

A94A8FE5CCB19BA61C4C0873D391E987982FBBD3

보시다시피 '0'이 놓쳤습니다! 내가 뭐가 잘못 됐어?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top