| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- namespace app\utils\Allinpay;
- class AppUtil{
- /**
- * 将参数数组签名
- */
- //RSA签名
- public static function Sign(array $array, $private_key = ''){
- ksort($array);
- $bufSignSrc = AppUtil::ToUrlParams($array);
- // $private_key='MIIEowIBAAKCAQEAnlGKzchX0aOn9xRVuRgQRp7Oc0a5ArogQA1tOcf7sSq+M2+2bTmCxQChBrwJAo7d68jiZKRzYLTfy40gEXwc+wLDPubnyPrLnoVDubVxNXOLdF6lpm28wOO5xn1Daqd+E9l+wjhcbcUvVOSU12SXcfmwCh4lsdbTyeOFB8qlqzPvT4lGSjD+nZyiAwBgoYD13Pb2ipdAhOLfwyicv5+iWTnjNY3ZQ+5C5iajXyqXheE8/u5Gc0f+xUJx4ibYtEGx3DY/Ix7+9U2p/a9DV0KMP2xb+WPdYctqtQzX1Su3VrCGGfVCHnZGwDEvQ5eBM66/2UljDCB08TO1snu16TULPQIDAQABAoIBADzVuo+Of2hYCa/gyXvhakeouE4FjAwnN0NFpYYBeY6/jOy47ZGU+tH2hunOkWvBODdlLtFbe9ZaSnCuHvd5CK3PhvUBx2ksLdgQ/1A6D3Fpn9mskNyd6Fz6ZKWH9sLh74lzFslM3P91ONXXK/aEeclbF7EbmoJ2uVUnrzOqQ/S/2lhkgycoaCj1OC8fID5dQzmZcBVx+d++B2N96as2vqCuOW2pBTAciDIVTJNomzcahvu3fiVSswJ5j08LX8ZxT5v3soET3eo40pZMzC8H03y6LDEKsig1588YcEnGizgH8622lLnrOW3IAedSCr1bwOMQ98hWvc5r2vrZ4xoPBkUCgYEAz3nJyjUhq3KgCeDNnuhTdqZ+fL1ZrOk9T7+OM3mW/WHThQXQ4ayFwOU9F30CZLImphskUk+ebZnIl8M+/8+klzhjRgty5lfzTjbZCREKoegcqczeKLLzpAzi9K8FHlpJYHkT9+E5QsLc1BFpJwAUbwjx6Hwqxz9BUcSCovDVyTMCgYEAw1iPao9loz0RQmyOb7ufWw4gdyEdvrFPgnAOh/ZSOXs382NS7nOEMh26CTKV1pZkb2d4FNgIL1rSThVnb/c3QSeOjcbSUZ9T58FvW20Pn7hTMZuIGlRjit+AqCfr2cklcyJgd5poDZstI/5Y56bTIO+NMfyyFgXbZuFuEgFJOc8CgYALWW0pa4ig+U852xtEYw8VwXvP1QfPxp58+0yLEk6pI63PbAcGIUrbx251F3iHC5vDoF53RjWzZyMq8hpDIhet0f7UORIa+Zqsn6F1toHvY2QWAcfxUAC166KKofxUsbmr1lO6To60UTaFP0KSSJXVkRaykgBBD/vBvk8rHKOFMwKBgQCxSfPHW2N8FlVOuqU/BMIo6pZOaDDNu7CUiky12rlfT9REwXUn0pE8xrvr0wwoWA/JB9f02uf6ymup0EUzWeO870Cyrap9x6Nn56fACygt5iUjFawdcU9yX0wt0SV9X8/sQVvZ0Ln090utqg5YF5DwCFlV76hU0nYAVkIGd0JVAwKBgCOkJvO1jlE3e2f3KqdtiL9rl2JoUohdSPXrDONn6NwyBOS57bSj0U/4wu1x1zZnKcJZzol+5prnSg/ijfGlvJ3sTw1XGI9m3pYlh/5/Jk/cVox5MjQZwLt0UDoUob8Ft0LtWTNn36UsvwVeDaU3HF+y5zitBYdzbgZ53XFXTREt';
- $private_key = chunk_split($private_key , 64, "\n");
- $key = "-----BEGIN RSA PRIVATE KEY-----\n".wordwrap($private_key)."-----END RSA PRIVATE KEY-----";
- // echo $key;
- if(openssl_sign($bufSignSrc, $signature, $key )){
- // echo 'sign success';
- }else{
- return 'sign fail';
- }
- $sign = base64_encode($signature);//加密后的内容通常含有特殊字符,需要编码转换下,在网络间通过url传输时要注意base64编码是否是url安全的
- //echo $sign;
- // echo $signature,"\n";
- return $sign;
- }
-
-
- public static function ToUrlParams(array $array)
- {
- $buff = "";
- foreach ($array as $k => $v)
- {
- if($v != "" && !is_array($v)){
- $buff .= $k . "=" . $v . "&";
- }
- }
-
- $buff = trim($buff, "&");
- return $buff;
- }
-
- /**
- * 校验签名
- * @param array 参数
- * @param unknown_type appkey
- */
-
- public static function ValidSign(array $array, $public_key = ''){
- $sign =$array['sign'];
- unset($array['sign']);
- ksort($array);
- $bufSignSrc = AppUtil::ToUrlParams($array);
- // $public_key='MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCm9OV6zH5DYH/ZnAVYHscEELdCNfNTHGuBv1nYYEY9FrOzE0/4kLl9f7Y9dkWHlc2ocDwbrFSm0Vqz0q2rJPxXUYBCQl5yW3jzuKSXif7q1yOwkFVtJXvuhf5WRy+1X5FOFoMvS7538No0RpnLzmNi3ktmiqmhpcY/1pmt20FHQQIDAQAB';
- $public_key = chunk_split($public_key , 64, "\n");
- $key = "-----BEGIN PUBLIC KEY-----\n$public_key-----END PUBLIC KEY-----\n";
- $result= openssl_verify($bufSignSrc,base64_decode($sign), $key );
- return $result;
- }
-
-
- }
|