In der PHP-Sprache wird das C#-ASCII-Code-Äquivalent ausgedrückt als
P粉680087550
P粉680087550 2023-07-17 18:27:57
0
1
591

Ich möchte diesen Code für Bankzahlungen in PHP implementieren. Kann mir jemand helfen? Danke.

ASCIIEncoding ByteConverter = new ASCIIEncoding();

string dataString = "Data to Sign";
‬
byte[] originalData = ByteConverter.GetBytes(dataString);

byte[] signedData;

RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider();

String PrivateKey= File.ReadAllText(Application.StartupPath + "PrivateKey.xml");

RSAalg.FromXmlString(PrivateKey);

signedData = Key.SignData(originalData,SHA1.Create());

String base64String = Convert.ToBase64String(signedData, 0, signedData.Length);
‬

Ich habe es bereits versucht, aber keine Ergebnisse erzielt. Aufgrund eines Problems mit der Anfrage habe ich einen Symbolfehler erhalten.

$baseString = "Data to Sign";
$signedData = null;
$privateKey = file_get_contents(config_path("PrivateKey.pem"));
$privateKeyResource = openssl_pkey_get_private($privateKey);

$signature = null;

if (openssl_sign($baseString, $signedData, $privateKeyResource, OPENSSL_ALGO_SHA1))
            $signature = base64_encode($signedData);


P粉680087550
P粉680087550

Antworte allen(1)
P粉674876385


我猜测数据字符串/基本字符串的编码错误。

在C#中,默认的字符串编码是UTF-16,在php中,字符串的编码自动为ASCII,但是如果字符串中出现不支持的字符,则编码会自动更改为UTF-8 - 所以这取决于$baseString包含的字符串,您可以使用mb_detect_encoding方法检查编码是否仍然是预期的ASCII编码。


Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!