Преобразовать знак Java RSA в код PHP с помощью phpseclib - PullRequest
0 голосов
/ 25 февраля 2019

Может кто-нибудь помочь мне преобразовать из знака Java в код php, используя phpseclib

public string SignData(string _data,string _priKey)
 {
 RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048);
 rsa.FromXmlString(_priKey);
 UnicodeEncoding ByteConverter = new UnicodeEncoding();
 byte[] dataToEncrypt = ByteConverter.GetBytes(_data);
 byte[] signature = rsa.SignData(dataToEncrypt,'sha256');
 string result = Convert.ToBase64String(signature);
 return result;
 }

Я использую это, но это не работает (в laravel)

use phpseclib\Crypt\RSA;

$rsa = new RSA();
$rsa->setHash('sha256');
$rsa->setSignatureMode(2);
$privateXmlKey = '<RSAKeyValue><Modulus></Modulus><Exponent>AQAB</Exponent><P></P><Q></Q><DP></DP><DQ></DQ><InverseQ></InverseQ><D></D></RSAKeyValue>';
$rsa->loadKey($privateXmlKey, 2);
$text = 'sample data';
$plainText = mb_convert_encoding($text, 'UTF-16');
$sign = $rsa->sign($plainText);
$sign = base64_encode($sign);

Я пробовал оба режима подписи: CRYPT_RSA_SIGNATURE_PKCS1 и CRYPT_RSA_SIGNATURE_PSS

Большое спасибо

...