在PHP语言中,C#ASCII码等价表示为
P粉680087550
P粉680087550 2023-07-17 18:27:57
0
1
508

我想在PHP中实现这段用于银行支付的代码。有人能帮我吗?谢谢。

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); ‬

我已经尝试过了,但是没有得到任何结果。由于请求的问题,我得到了一个符号错误。

$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

全部回复 (1)
P粉674876385


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

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


    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!