cari

Rumah  >  Soal Jawab  >  teks badan

php - Menggunakan openssl_sign untuk menyulitkan kandungan dan mengeluarkan aksara bercelaru

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==
typechotypecho2750 hari yang lalu3019

membalas semua(1)saya akan balas

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-19 09:09:12

    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

    balas
    0
  • Batalbalas