php - Menggunakan openssl_sign untuk menyulitkan kandungan dan mengeluarkan aksara bercelaru
typecho
typecho 2017-06-19 09:07:12
0
1
2994

Apabila menyambung ke API pihak ketiga, memandangkan pihak ketiga menggunakan penyulitan Java, kandungan tersebut perlu diproses base64 terlebih dahulu Oleh itu, kandungan yang dihantar diproses terlebih dahulu dan kemudian openssl_sign disulitkan, tetapi kod yang dikembalikan adalah bercelaru.

$privary = file_get_contents('private_key.pem');
$pkeyid = openssl_pkey_get_private($privary);
$content = '<?xml version="1.0" encoding="UTF8"?><request><head><msgId>115454545454545hghghghgh5465ghghg</msgId><timeStamp>20160110103012304</timeStamp><session></session><userCode>a77b0ae7-af59-4</userCode></head><body><cityMsg><searchTxt>g</searchTxt><page>1</page><count>20</count></cityMsg></body></request>';

$content = base64_encode($content);
openssl_sign($content, $signature, $privary, "SHA256");

print $signature;

Berikut adalah output:

mm|†Ñ±ù¼®²OW®W‰EdŽáWѤ{†Q&3tÎtþù¹¤5ŸJYLß,@±½Qlî†ÓûñB=ÑF͵OPÔZaîöÃý¯s\^¼žFOôâåä6µµ¬Js¤våaãSchq üî*ªo³¢3<‹adÿ«˜Lí™q.è    &ÂW¬b+…Çênƒy·“KM`–GrìmÈà”è#\ÕQ"½H™Wßr-CB8Ä\ lÅŵü34½˜–þæw÷ w"xåívwѯÎÄ*꾈Ñd0ÉÿíbÉ‹#V+­Ï×úÚë$JÀ†J=C™‹ë)öó

Hasil penyulitan yang betul sepatutnya seperti ini:

bW0TF3yG0bH5vK6yA09XrleJRWSO4VfDkaR7AIZRJjN0znT+FvkSuaQ1n0pZBkzfLI1Asb1RbAjuhtP78UI90UbNtU9Q1Fph7vbDH/2vc1xevJ5GT/Ti5eQ2tbWsSnPCpHblYQTjU39jaHEN/O4qqm+zoggzEjyLYWT/q5hM7ZlxLgvoDAkmwlcbrGIrhcfqFG6DeZC3k0tNYMKWR3LsbcjgjZToI1zVUSK9SJmBV99yLUMOQjjEXBsgbMXFtR78MzS9mJb+5nf3Co13Injl7XZ30a/OxCrqvojRZDDJ/+1iyYsjVisUAa3P1/qP2uskSsCGSj0UQ5mL650TKfbzFg==
typecho
typecho

Following the voice in heart.

membalas semua(1)
曾经蜡笔没有小新

Sama ada RSA,还是DESAES等加密算法,加密之后本质就是是ascii字符串(0x00-0xff),

Jika anda ingin menggambarkan atau menghantar, anda boleh base64 encode

Penyahsulitan memerlukan dahulu base64 decode dan kemudian penyahsulitan

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan