|
| 1 | +<?php |
| 2 | + |
| 3 | +$privateKey = openssl_pkey_new(array( |
| 4 | + 'private_key_bits' => 2048, |
| 5 | + 'private_key_type' => OPENSSL_KEYTYPE_RSA, |
| 6 | +)); |
| 7 | +openssl_pkey_export($privateKey, $pkeyout); |
| 8 | + |
| 9 | +$publicKey = openssl_pkey_get_details($privateKey)['key']; |
| 10 | + |
| 11 | +var_dump($privateKey); |
| 12 | +var_dump($pkeyout); |
| 13 | +var_dump($publicKey); |
| 14 | +die; |
| 15 | + |
| 16 | +echo '原始内容: '.$data."\n"; |
| 17 | + |
| 18 | +$pubkey = "-----BEGIN PUBLIC KEY----- |
| 19 | +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1zPb8FxkuL9hxM843X58 |
| 20 | +4CrHIQr7YtTnbZwhSwbtCs907J3OnNBZbH6GvOQoqQ97JuhCVNSyzYc0CPsWzmc0 |
| 21 | +3jlpiQiUmvifwYvBu1pZq7FLekEpCPud2fcfzbqcjqYEo7Z9iIt4zqU8y1AMQF+Z |
| 22 | +K4HNtJnbNyqPfsTrKIUw9kj0l0HHFstkq6qGhW0+iqsbPDsjY4JDRKP0tiaaXyme |
| 23 | +Oy1rr2tzyCmONjkOzlIyw3BobcjjCrpBpjQKXEdWscWJjhD9NobNQ15Oiqa0JzkT |
| 24 | +KHj6BlMdgKY8HVmaeRS0u/tbAP3ph29rz72RlmHxe+XpPKOSqfegFTZcpPevhoPM |
| 25 | +kwIDAQAB |
| 26 | +-----END PUBLIC KEY-----"; |
| 27 | +$prikey = "-----BEGIN RSA PRIVATE KEY----- |
| 28 | +MIIEowIBAAKCAQEA1zPb8FxkuL9hxM843X584CrHIQr7YtTnbZwhSwbtCs907J3O |
| 29 | +nNBZbH6GvOQoqQ97JuhCVNSyzYc0CPsWzmc03jlpiQiUmvifwYvBu1pZq7FLekEp |
| 30 | +CPud2fcfzbqcjqYEo7Z9iIt4zqU8y1AMQF+ZK4HNtJnbNyqPfsTrKIUw9kj0l0HH |
| 31 | +Fstkq6qGhW0+iqsbPDsjY4JDRKP0tiaaXymeOy1rr2tzyCmONjkOzlIyw3Bobcjj |
| 32 | +CrpBpjQKXEdWscWJjhD9NobNQ15Oiqa0JzkTKHj6BlMdgKY8HVmaeRS0u/tbAP3p |
| 33 | +h29rz72RlmHxe+XpPKOSqfegFTZcpPevhoPMkwIDAQABAoIBAGNYL1ogbObUgp/G |
| 34 | +QawObjtVxCM+3JndSxDQmJX4Fol9B68LkovVqtJo/m5IrXSODv4BDk32+qvilGTo |
| 35 | +9LhH8KH9wvhdm6yGxcklaUPCC880w3Emj3j0HwS2Dlp8oTVA8rdY0U6thBFxOkVp |
| 36 | +KJ63AxCQlZOfyxEGdsPAyAYmplmqr3Q3jlTk74nGJUA9n0ZkX7t010TNXVcS4FTA |
| 37 | +3I+1FXYHX4QBw33X2Vj84Ur2dCSG7Lf2GcDXWLDOHyAWAyHEFN7hsGBFph7QTu0J |
| 38 | +1dJ4xMqCAn3MyXogIjE8+2dhp/uh4DbzDPnftlmCkbgp+ssTGp893nwmLD+AtZME |
| 39 | +2KBNLaECgYEA7fyXVKClr1t39O4E4AbX/LHPCG7fmowNCv1OyPUTN5JTuEx9ZPKW |
| 40 | +r5WvBH5LgkBXDqByrd6GpsPA2Yk7SJpaMRlDjorMuXPNS/xYM/v/Wehm5C2Ovztn |
| 41 | +sFwLLeOZ3K9gJWGuB5MQrP1+raw4YeOqvhGDeWAwZC872Lh/9uSBSmsCgYEA533J |
| 42 | +NYzqWrMRDT9QaOfg8dSgYB/eiGTIeDyqhRogpY3rEWatE48pPaC9iSeZKz/EztYy |
| 43 | +mnN9kGy1BfSqCpttqJ06Si8v/wZlAuqzraOuXaZu89DAYWTCSrCk0AXKl6DBOH4H |
| 44 | +q9NlxEb1XV4bY1BtFAgBVZpcoVcAckILr3Ne4HkCgYEAprx92hDjhER1euj4CW1C |
| 45 | +Dg0VnDbx+nl8+eIXPLxXxmuCtHECuaMs57/bay6BALTLSbgoIKDzfgtQJhj7rBZY |
| 46 | +cmXc6xVb8eKsRzx5H5LCiN9Glz9D779TGkCipHf96JwGpKoXH79tw4WnJ06uAgdc |
| 47 | +LOZgUr2NqeNd7qz1Gqll3BkCgYBdvd88EztXzUmrbqc2RCggZfUn19/6pa1Um2SG |
| 48 | +D+WGhSja3BRcZk3SCgSWxPVOwT0GcVD+oKQJVywbJE+zietnK3xOTDuIb2N6QebO |
| 49 | ++wiCHgKyMyekiPPw4QVsw9udeVilcsvSdgGw8Pctfw1iM1BomzFHJAI8x4mDu2EW |
| 50 | +BIc4KQKBgFfWOJjLHGGJIZxq4Ib1KwXW3sdZvfR1032o8LxtAhuttSoNVmLrHDMD |
| 51 | +RMTjGreucIWtI55/daiTykFa7cfaAVMo/4T/hIETMzgh6YifFKuKMKnwTLyXNGF9 |
| 52 | +yRFAwtADJ47TdwRzMMp50jPoBBLSwBxoj9rHw5RV4237F1O4f7Iv |
| 53 | +-----END RSA PRIVATE KEY-----"; |
| 54 | + |
| 55 | +function String2Hex($string){ |
| 56 | + $hex = ''; |
| 57 | + for ($i=0; $i < strlen($string); $i++){ |
| 58 | + $ord = ord($string[$i]); |
| 59 | + $hexCode = dechex($ord); |
| 60 | + $hex .= substr('0'.$hexCode, -2); |
| 61 | + } |
| 62 | + return $hex; |
| 63 | +} |
| 64 | + |
| 65 | +function signWkCode($data, $private_key) { |
| 66 | + // $pri = formatPriKey($private_key); |
| 67 | + $pri = $private_key; |
| 68 | + $res = openssl_private_encrypt($data, $encrypted, $pri); |
| 69 | + if(!$res) return false; |
| 70 | + return String2Hex($encrypted); |
| 71 | +} |
| 72 | + |
| 73 | +function formatPriKey($priKey) { |
| 74 | + $fKey = "-----BEGIN PRIVATE KEY-----\n"; |
| 75 | + $len = strlen($priKey); |
| 76 | + for($i = 0; $i < $len; ) { |
| 77 | + $fKey = $fKey . substr($priKey, $i, 64) . "\n"; |
| 78 | + $i += 64; |
| 79 | + } |
| 80 | + $fKey .= "-----END PRIVATE KEY-----"; |
| 81 | + return $fKey; |
| 82 | +} |
| 83 | + |
| 84 | +// $data = '原始数据'; |
| 85 | +// $private_key = '私钥字符串'; |
| 86 | +$private_key = $prikey; |
| 87 | +$wxcode = signWkCode($data, $private_key); |
| 88 | +var_dump($wxcode); |
| 89 | + |
| 90 | +$privateKey = openssl_pkey_new(array( |
| 91 | + 'private_key_bits' => 2048, |
| 92 | + 'private_key_type' => OPENSSL_KEYTYPE_RSA, |
| 93 | +)); |
| 94 | + |
| 95 | +$publicKey = openssl_pkey_get_details($privateKey)['key']; |
| 96 | +var_dump($privateKey); |
| 97 | +var_dump($publicKey); |
0 commit comments