PHP openssl_sign генерирует подпись, отличную от подписи SSCrypto.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHP openssl_sign генерирует подпись, отличную от подписи SSCrypto.

Сообщение Anonymous »

Я пишу клиент OS X для программного обеспечения, написанного на PHP. Это программное обеспечение использует простой интерфейс RPC для получения и выполнения команд. Клиент RPC должен подписывать команды, которые он отправляет, чтобы гарантировать, что никакой MITM не сможет изменить какую-либо из них.

Однако, поскольку сервер не принимал подписи, которые я отправлял от моего клиента OS X, я начал расследование и обнаружил, что функция PHP openssl_sign генерирует другую подпись для данной комбинации закрытого ключа/данных, чем платформа Objective-C SSCrypto (которая является всего лишь оболочкой для библиотеки openssl):

Код: Выделить всё

SSCrypto *crypto = [[SSCrypto alloc] initWithPrivateKey:self.localPrivKey];
NSData *shaed = [self sha1:@"hello"];
[crypto setClearTextWithData:shaed];
NSData *data = [crypto sign];
генерирует подпись типа CtbkSxvqNZ+mAN...

Код PHP

Код: Выделить всё

openssl_sign("hello", $signature, $privateKey);
генерирует подпись типа 6u0d2qjFiMbZ+...
(Конечно, для моего определенного ключа. В кодировке base64)

Я не совсем уверен, почему это происходит, и я безуспешно экспериментировал с разными хэш-алгоритмами. В документации PHP указано, что по умолчанию используется SHA1.

Так почему же эти две функции генерируют разные подписи и как я могу заставить мою часть Objective-C генерировать подпись, которую PHP будет принимать openssl_verify?

Примечание: я дважды проверил правильность ключей и данных!

Подробнее здесь: https://stackoverflow.com/questions/269 ... yptos-sign
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»