rsa非对称加密

加密文件

<?php
/**
 * 数据管理
 * User: djw
 * Date: 2018/5/24
 * Time: 14:45
 */

namespace ai\Http\Controllers;


use ai\Lib\Secrets;
use ClassesWithParents\D;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;

class Data extends Controller
{
    /**
     * 导入数据
     */
    public function import(Request $request)
    {
        if ($request->isMethod('get')) {
//            phpinfo();die;
            return view('data.import');
        } else {
            $name = $request->name;
            $bus = $request->bus;
            $task = $request->task;
            $huashu = $request->huashu;
            $data_file = $request->file('data');
            if($data_file -> isValid()) { //检验一下上传的文件是否有效.
                $clientName = $data_file->getClientOriginalName();
                $pack_name = substr($clientName, 0, strrpos($clientName, '.')); // 包名
            }

            $dst_path = Config::get('constants.UPLOAD_DATA').'/'.date('Y', time()) . '/' . date('m', time()) . '/' . date('d', time());
            // 这里是如果上传文件过大 自己命令文件的处理代码
//            $newName = md5(date("Y-m-d H:i:s").mt_rand(1000,9999));
//            $entension = $data_file -> getClientOriginalExtension();
//            $path = $request->file('data')->storeAs(
//                $dst_path, $newName.'.'.$entension
//            );
            $path = $request->file('data')->store($dst_path);
//            $path = Storage::putFile('uploadData', $request->file('data'));
            $import_time= time();
            $status = 2; // 默认为2 未完成
            $operation = 2; // 默认为2 未完成 对应的关闭
            $task_type = \ai\Models\Task::getTaskType($bus, $task);
            $task_type = $task_type->type;
//            dd($task_type->type);
//            dd($path);
            $data = $this->importData(public_path().'/upload/'.$path, $huashu, $pack_name);
            $post_url = 'http://192.168.8.69/api/batchImportData.php';
            $result = post_api($post_url, $data);
            dd($result);
            $res = DB::table('a_data_packet')->insert(['name' => $name, 'business_id' => $bus, 'task_id' => $task, 'huashu_id' => $huashu, 'data_position' => $path, 'import_time' => $import_time, 'operation' => $operation,'status' => $status,'task_type' => $task_type]);
            if ($res) {
                return view('data.import', ['message' => '导入数据成功']);
            }
        }

    }

    /** 筛选任务数据管理页面
     */
    public function screenTask(Request $request)
    {
        // 搜索条件 数据包名 数据包ID 任务名称 商家名称 状态
        $data_name = $request->data_name ? $request->data_name : '';
        $data_id = $request->data_id ? $request->data_id : '';
        $task_name = $request->task_name ? $request->task_name : '';
        $bus_name = $request->bus_name ? $request->bus_name : '';
        $status = $request->status;
        $task_type = 1;
        $datas = $this->getData($data_name, $data_id, $task_name, $bus_name, $status, $task_type);
//        dd($datas);

        // 分页
        $perPage = Config::get('constants.PERPAGE');
        if ($request->has('page')) {
            $current_page = $request->input('page');
            $current_page = $current_page <= 0 ? 1 :$current_page;
        } else {
            $current_page = 1;
        }
        $data = Business::fenye($perPage, $current_page, $datas);

        $data = [
            'datas' => $data[0],
            'paginator' => $data[1],
            'total' => $data[2],
            'data_name' => $data_name,
            'data_id' => $data_id,
            'task_name' => $task_name,
            'bus_name' => $bus_name,
            'status' => $status,
        ];

        return view('data.screenTask.index')
            ->with($data)
            ;
    }

    private function getData($data_name, $data_id, $task_name, $bus_name, $status, $task_type)
    {
        $data_name = trim($data_name);
        $data_id = trim($data_id);
        $task_name = trim($task_name);
        $bus_name = trim($bus_name);

        $where_str = ' where 1 = 1';
        if ($data_name) {
            $where_str .= " AND d.name like '%$task_name%'";
        }
        if ($data_id) {
            $where_str .= " AND d.id = $data_id";
        }
        if ($bus_name) {
            $where_str .= " AND b.name like '%$bus_name%'";
        }
        if ($task_name) {
            $where_str .= " AND t.name like '%$task_name%'";
        }
        if ($status) {
            $where_str .= " AND d.status = $status";
        }
        if ($task_type) {
            $where_str .= " AND d.task_type = $task_type";
        }

        $sql = "SELECT d.*, b.name as b_name, t.name as t_name FROM a_data_packet as d LEFT JOIN a_business as b ON d.business_id = b.id LEFT JOIN a_task as t ON d.task_id = t.id";
        $sql .= $where_str;
        $sql .= " ORDER BY d.status asc";

        $res = DB::select($sql);

        return $res;
    }

    /**
     * ajax 发布
     */
    public function release(Request $request)
    {
        $id = $request->id;
        $res = DB::table('a_data_packet')->where('id', $id)->update(['operation' => 3, 'status' => '3']);

        if ($res) {
            return ['status' => 1]; // 成功
        }
    }

    /**
     * ajax 关闭
     */
    public function close(Request $request)
    {
        $id = $request->id;
        $res = DB::table('a_data_packet')->where('id', $id)->update(['operation' => 4, 'status' => '3']);

        if ($res) {
            return ['status' => 1]; // 成功
        }
    }

    /**
     * 筛选数据
     */
    public function screen(Request $request)
    {

    }

    /** 转接任务数据管理页面
     */
    public function transferTask(Request $request)
    {
        // 搜索条件 数据包名 数据包ID 任务名称 商家名称 状态
        $data_name = $request->data_name ? $request->data_name : '';
        $data_id = $request->data_id ? $request->data_id : '';
        $task_name = $request->task_name ? $request->task_name : '';
        $bus_name = $request->bus_name ? $request->bus_name : '';
        $status = $request->status;
        $task_type = 2;
        $datas = $this->getData($data_name, $data_id, $task_name, $bus_name, $status, $task_type);
//        dd($datas);

        // 分页
        $perPage = Config::get('constants.PERPAGE');
        if ($request->has('page')) {
            $current_page = $request->input('page');
            $current_page = $current_page <= 0 ? 1 :$current_page;
        } else {
            $current_page = 1;
        }
        $data = Business::fenye($perPage, $current_page, $datas);

        $data = [
            'datas' => $data[0],
            'paginator' => $data[1],
            'total' => $data[2],
            'data_name' => $data_name,
            'data_id' => $data_id,
            'task_name' => $task_name,
            'bus_name' => $bus_name,
            'status' => $status,


]; return view('data.transferTask.index') ->with($data) ; } /** 拨打任务数据管理页面 */ public function dialTask(Request $request) { // 搜索条件 数据包名 数据包ID 任务名称 商家名称 状态 $data_name = $request->data_name ? $request->data_name : ''; $data_id = $request->data_id ? $request->data_id : ''; $task_name = $request->task_name ? $request->task_name : ''; $bus_name = $request->bus_name ? $request->bus_name : ''; $status = $request->status; $task_type = 3; $datas = $this->getData($data_name, $data_id, $task_name, $bus_name, $status, $task_type); // dd($datas); // 分页 $perPage = Config::get('constants.PERPAGE'); if ($request->has('page')) { $current_page = $request->input('page'); $current_page = $current_page <= 0 ? 1 :$current_page; } else { $current_page = 1; } $data = Business::fenye($perPage, $current_page, $datas); $data = [ 'datas' => $data[0], 'paginator' => $data[1], 'total' => $data[2], 'data_name' => $data_name, 'data_id' => $data_id, 'task_name' => $task_name, 'bus_name' => $bus_name, 'status' => $status, ]; return view('data.dialTask.index') ->with($data) ; } /** * 导入数据接口 */ public function importData($path, $speech_id, $pack_name) { $contents = file_get_contents($path); $contents=str_replace(array("\n","\r"),"",trim($contents)); $phone_arr = str_split($contents, 11); $file = []; foreach ($phone_arr as $key=>$value) { $file[$key]['number'] = $value; // 数据 $file[$key]['data_id'] = time().$key; // 数据id } $app_id = 1; $time_stamp = time(); $signInfo = $app_id.$time_stamp; $public_key = Config::get('constants.PUBLIC_KEY'); $pu_key = openssl_pkey_get_public($public_key);// 可用返回资源id $public_encrypt = Secrets::public_encrypt($signInfo,$pu_key);//加密 $signInfo = urlencode($public_encrypt); // $signInfo = $public_encrypt; // var_dump($signInfo); $data = ['file' => $file, 'speech_id' => $speech_id, 'pack_name' => $pack_name, 'time_stamp' => $time_stamp, 'app_id' => $app_id, "signInfo" => $signInfo]; $data= json_encode($data); // dd($signInfo, $data); return $data; } }

使用
 $app_id = 1;
        $time_stamp = time();
        $signInfo = $app_id.$time_stamp;
        $public_key = Config::get('constants.PUBLIC_KEY');
        $pu_key = openssl_pkey_get_public($public_key);// 可用返回资源id
        $public_encrypt = Secrets::public_encrypt($signInfo,$pu_key);//加密
        $signInfo = urlencode($public_encrypt);

猜你喜欢

转载自www.cnblogs.com/djwhome/p/9101374.html