|
@@ -14,78 +14,67 @@ class Test extends Api
|
|
|
protected $noNeedRight = '*';
|
|
|
|
|
|
//解密
|
|
|
- public function index()
|
|
|
- {
|
|
|
- $request_data = input('request_data', 'PtqZJw7sYX3g07g\/451+u7DCgF8R4f6pzrdcwDUxV1pRJ+l7RUIJzB2CBwr9YINQqJeieC\/19\/3D6yzQNHHkthyu+jtUBQz7XMCd+hax2MsASeRKPICtsoVJDzDF9sy+ewRDbl2NC3zPJK026VnsrhpW6BSNO4J1oZIctjrhgONrJUk47yht0Vq+qLysqdcy+sdp5JYmp8C4OFnxT\/jhNIYbaoYQP8UBqKIdMm4q9wxKTor4SHMliBxDX3M1z+oXOxVbb+1rhztaSCHqKUgBe7N69Kl42ZM\/WXqDf72D5sMExZtSbqQG3NNEv2nzIXDa1G9pI76s8rKg9uTH+DG9+A==', 'trim'); //手机号和事件 json串 加密
|
|
|
- if (!$request_data) {
|
|
|
- $this->error('网络延迟1');
|
|
|
- }
|
|
|
- $request_data = base64_decode($request_data);
|
|
|
+ public function verifysign(){
|
|
|
|
|
|
+ //解密签名
|
|
|
+ $sign = $this->request->request('sign','','trim');
|
|
|
+ if(empty($sign)){
|
|
|
+ $this->error('缺少签名');
|
|
|
+ }
|
|
|
+ $sign = base64_decode($sign);
|
|
|
|
|
|
- $public_key_str = config('api_rsa.public_key');
|
|
|
+ $public_key_str = config('app_rsa.public_key');
|
|
|
$public_key = "-----BEGIN PUBLIC KEY-----" .PHP_EOL.
|
|
|
wordwrap($public_key_str, 64, PHP_EOL, true) .
|
|
|
PHP_EOL."-----END PUBLIC KEY-----";
|
|
|
|
|
|
- $data = ''; //手机号和事件 json串 加密
|
|
|
- openssl_public_decrypt($request_data, $data, $public_key); // 使用私钥解密数据
|
|
|
- if (!$data) {
|
|
|
- $this->error('网络延迟2');
|
|
|
+ $signgetdata = ''; //被解密出来的数据
|
|
|
+ openssl_public_decrypt($sign, $signgetdata, $public_key); // 使用私钥解密数据
|
|
|
+ if (!$signgetdata) {
|
|
|
+ $this->error('签名错误');
|
|
|
}
|
|
|
- $data = json_decode($data, true);
|
|
|
- if (!$data) {
|
|
|
- $this->error('网络延迟3');
|
|
|
+ dump($signgetdata);
|
|
|
+
|
|
|
+ //接收到的参数
|
|
|
+ $request_all = $this->request->request();
|
|
|
+ unset($request_all['s']);
|
|
|
+ unset($request_all['sign']);
|
|
|
+ ksort($request_all);
|
|
|
+ $request_all = json_encode($request_all);
|
|
|
+ dump($request_all);
|
|
|
+
|
|
|
+ //作对比
|
|
|
+ if($request_all != $signgetdata){
|
|
|
+ $this->error('验签错误');
|
|
|
}
|
|
|
|
|
|
- $this->success(1,$data);
|
|
|
-
|
|
|
+ echo '验签正确';
|
|
|
}
|
|
|
|
|
|
+
|
|
|
//加密
|
|
|
public function jiami(){
|
|
|
- $data = [
|
|
|
- 'id' => 180,
|
|
|
- 'name' => '恐龙扛狼',
|
|
|
- ];
|
|
|
- $json_data = json_encode($data);
|
|
|
+ $request_all = $this->request->request();
|
|
|
+
|
|
|
+ unset($request_all['s']);
|
|
|
+ dump($request_all);
|
|
|
+ ksort($request_all);
|
|
|
+ dump($request_all);
|
|
|
+ $json_data = json_encode($request_all);
|
|
|
|
|
|
- $private_key_str = config('api_rsa.private_key');
|
|
|
+ $private_key_str = config('app_rsa.private_key');
|
|
|
$private_key = "-----BEGIN RSA PRIVATE KEY-----\n".
|
|
|
wordwrap($private_key_str, 64, "\n", true).
|
|
|
"\n-----END RSA PRIVATE KEY-----";
|
|
|
|
|
|
|
|
|
- $newdata = '';
|
|
|
- openssl_private_encrypt($json_data,$newdata,$private_key);
|
|
|
- $newdata = base64_encode($newdata);
|
|
|
+ $sign = '';
|
|
|
+ openssl_private_encrypt($json_data,$sign,$private_key);
|
|
|
+ $sign = base64_encode($sign);
|
|
|
|
|
|
- $this->success(1,$newdata);
|
|
|
+ $this->success('获得签名',$sign);
|
|
|
}
|
|
|
|
|
|
|
|
|
- //盐值与向量
|
|
|
- public function test(){
|
|
|
- $data = [
|
|
|
- 'id' => 180,
|
|
|
- 'name' => '恐龙扛狼',
|
|
|
- ];
|
|
|
- $json_data = json_encode($data);
|
|
|
-
|
|
|
- $method = 'AES-128-CBC';
|
|
|
- $key = '2911827315869D7F';
|
|
|
- $iv='1234567812345678';
|
|
|
|
|
|
- $request_data = '';
|
|
|
-
|
|
|
- $passcrypt = openssl_encrypt($json_data,$method,$key,OPENSSL_RAW_DATA,$iv);
|
|
|
- echo $request_data = base64_encode($passcrypt);
|
|
|
-
|
|
|
- $data = base64_decode($request_data);
|
|
|
- $data = openssl_decrypt($data, $method, $key, OPENSSL_RAW_DATA, $iv);
|
|
|
- $data = json_decode($data, true);
|
|
|
- dump($data);
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
}
|