Мне нужно преобразовать код из C# в PHP с одинаковыми результатами. В C# я закончил его довольно быстро, но теперь нужно преобразовать следующий код PHP:Как расшифровать текст, который был зашифрован с использованием RSA в C#
public static string RsaDecrypt(string privateKey, string src)
{
CspParameters csp = new CspParameters();
csp.Flags = CspProviderFlags.UseMachineKeyStore;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp);
rsa.FromXmlString(privateKey);
return RsaDecrypt(rsa, src);
}
public static string RsaDecrypt(RSACryptoServiceProvider rsa, string src)
{
byte[] srcData = Convert.FromBase64String(src);
byte[] destData = rsa.Decrypt(srcData, false);
return Encoding.UTF8.GetString(destData);
}
Я пытаюсь часов, и я не могу, я использую phpseclib0.2.1a файл и код:
Проблема в PHP возвращает следующую ошибку:
Notice: Decryption error in E:\AppServWWW\Request\Flash\Crypt\RSA.php on line 1582
@EDIT: Мой $ _GET [ "р"] является
cwQPQLSW%2FQ70AUmBzkZ9c7d9MrEAcPAAN1lRG937XZuibDOE304i8894uowlC1OANnWEim6suOxzhEHZl0BR1G1audk4CWG1TUSqAo4MO5FBfVbmcLVMx1KPV9%2FeMzil%2BHM1XwyX3Dm0h%2F0uAxORfpa3waq0iOemkUYBq2lXDEU%3D
Кроме того, сообщите нам, какая строка - 1582 ... – pattyd
if ($ lHash! = $ LHash2) { user_error ('Ошибка дешифрования', E_USER_NOTICE); return false; } –
1) Вы не опубликовали свой код шифрования. 2) Установка второго параметра 'Decrypt' на' false' означает, что вы используете плохое дополнение. 3) Рассмотрите возможность шифрования фактических данных с помощью AES и только шифрования ключа с помощью RSA. RSA следует использовать только для шифрования коротких данных. – CodesInChaos