瀏覽代碼

加密和解密

lizhen_gitee 1 年之前
父節點
當前提交
ff31a5e6a3
共有 1 個文件被更改,包括 39 次插入50 次删除
  1. 39 50
      application/api/controller/Test.php

+ 39 - 50
application/api/controller/Test.php

@@ -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);
-
-
-    }
 }