当前位置: 首页 > news >正文

微网站医院策划案北京市住房城乡建设厅网站首页

微网站医院策划案,北京市住房城乡建设厅网站首页,网站用什么软件做败sp,机器人编程培训机构一、加密工具开发 首先在根目录下extend文件中创建Encipher文件夹&#xff0c;用于专门开发加解密工具&#xff0c;新建RSA算法控制器并命名为Encrypt.php。然后在根目录下config文件夹中创建rsa.php文件&#xff0c;用于配置RSA算法参数。 1、秘钥生成算法 <?php /*** RS…

一、加密工具开发

        首先在根目录下extend文件中创建Encipher文件夹,用于专门开发加解密工具,新建RSA算法控制器并命名为Encrypt.php。然后在根目录下config文件夹中创建rsa.php文件,用于配置RSA算法参数。

        1、秘钥生成算法

<?php
/*** RSA加密工具* User: 龙哥 三年风水* Date: 2024/10/27/0027* Time: 21:12*/
namespace Encipher;
class Encrypt
{/*** 生成公私钥文件* @ return string*/public static function generateRsa(){$config = array('digest_alg' => config('rsa.digest_alg'),'private_key_bits' => config('rsa.private_key_bits'),'OPENSSL_KEYTYPE_RSA' => config('rsa.OPENSSL_KEYTYPE_RSA'),);$res = openssl_pkey_new($config);openssl_pkey_export($res, $private_key);$public_key = openssl_pkey_get_details($res);$public_key = $public_key["key"];file_put_contents("public.key", $public_key);file_put_contents("private.pem", $private_key);openssl_free_key($res);return "生成成功";}
}

        2、秘钥加密算法

<?php
/*** RSA加密工具* User: 龙哥 三年风水* Date: 2024/10/27/0027* Time: 21:12*/
namespace Encipher;
class Encrypt
{/*** 加密算法-采用公钥加密后base64加码* @ param $string* @ return string*/public static function encryptRsa($string){$ssl_public = file_get_contents("public.key");$pu_key = openssl_pkey_get_public($ssl_public);//这个函数可用来判断公钥是否是可用的if (false == $pu_key) return '证书错误';openssl_public_encrypt($string, $data, $pu_key);//公钥加密$data = base64_encode($data);return $data;}
}

        3、秘钥解密算法

<?php
/*** RSA加密工具* User: 龙哥 三年风水* Date: 2024/10/27/0027* Time: 21:12*/
namespace Encipher;
class Encrypt
{/*** 解密算法-base64解码后采用私钥解密* @ param $string* @ return string*/public static function decryptRsa($string){$ssl_private = file_get_contents("private.pem");$pi_key = openssl_pkey_get_private($ssl_private);//这个函数可用来判断私钥是否是可用的,可用返回资源id Resource idif (false == $pi_key) return '证书错误';openssl_private_decrypt(base64_decode($string), $data, $pi_key);//私钥解密return $data;}
}

        4、调用测试-生成公私钥

                a、一定要记得添加路由,在根目录下面route文件夹中的app.php文件中追加以下代码

Route::post('index/generate_rsa','Index/generateRsa');

                b、在根目录下app文件夹下的controller文件夹中,在Index.php控制器中追加以下代码

<?php
namespace app\controller;
use Encipher\Encrypt;class Index
{/*** 生成公私钥文件* @ return \think\response\Json*/public function generateRsa(){$res = Encrypt::generateRsa();return succ($res);}
}

二、开发Base.php总控业务逻辑

        我们根据以下草图可以发现,Base.php是控制登录者信息及验证业务逻辑。那么本控制主要做三件事情,登录后个人资料、角色、菜单:

        1、登录信息

                a、定义系统必要参数

    protected $userId = 0;//用户编号,整个系统内部使用protected $avatar = '';//登录用户的头像protected $username = '';//登录用户的登录名称protected $realname = '';//登录用户的真实名称protected $ip = '';//登录用户授权组protected $departmentId = 0;//登录用户部门编号protected $gradeId = 0;//登录用户级别编号protected $isUnserialize = true;//Redis里面有按钮权限protected $token = '';//当前用户唯一编码protected $roleId = '';//登录用户的权限编号protected $key = '';//登录用户权限组标识protected $butts = [];//操作权限,整个系统内部使用protected $rules = [];//登录用户的权限组,内部使用

                b、根据authorization头参数解析数据并查处结果

    //初始化方法public function initialize(){parent::initialize(); // TODO: Change the autogenerated stub$this->isLoginAuth();//判断是否登录}//token验证private function isLoginAuth(){$headInfo = $this->request->header();if(!isset($headInfo['authorization']))return err('非法操作!');if(empty($headInfo['authorization']))return err('操作异常!');$tokenValue = explode('|', Encrypt::encryptRsa($headInfo['authorization']));//解密 --转换tokenif(count($tokenValue) != 2)return warn('登录认证权限错误');$token = sha1(sha1($tokenValue[0]).strtotime($tokenValue[1]));$res = Token::setToken($token, $headInfo['authorization']);if($res['status'] === false)return warn($res['info']);//赋值错误信息$this->userId = $res['data']['admin_id'];$this->avatar = $res['data']['avatar'];$this->username = $res['data']['username'];$this->realname = $res['data']['realname'];$this->ip = $res['data']['ip'];$this->departmentId = $res['data']['department_id'];$this->gradeId = $res['data']['grade_id'];$this->roleId = $res['data']['role_id'];$this->token = $token;}

三、提前说明

        明天将封装Redis工具、数据库操作工具、及角色方法、菜单方法

http://www.yayakq.cn/news/479331/

相关文章:

  • 山东省住房与城乡建设厅网站ytwzjs烟台网站建设
  • 周年庆网站要怎么做最新室内设计效果图
  • 网站建设与数据库管理wordpress pdf杂志
  • 创建网站是怎么赚钱宝塔面安装wordpress
  • 从化市网站建设小程序代注册
  • 网站数据库访问微信公众平台号登录官网
  • 怎么用vps建网站外贸网站建设评价
  • 如何选择百度网站优化公司青浦做网站公司
  • 想做一个赌钱网站怎么做网站建设目标分析
  • seo对于电子商务网站推广的作用广告设计软件coreldraw
  • 网站过度优化的表现网络设计与制作
  • 哪些平台可以建立网站吗wordpress更换皮肤
  • 天津市建设行业联合会网站wordpress图片采集
  • 网站首页做301自适应 网站
  • 佛山建设外贸网站公司吗昆明seocn整站优化
  • 做网站详细步骤wordpress问答插件哪个好
  • ftp工具下载网站源码教程网站上的二维码
  • 建设网站的安全措施网站建设费无形资产
  • 网站流量达到多少seo好学吗
  • 傻瓜式大型网站开发工具编辑不了的wordpress
  • 做网站都去哪申请网址山东竞价推广公司
  • 网站开发语言总结清远做网站公司
  • 做网站软文怎么弄小说网页设计代码模板
  • 网站建设2017国内排行傻瓜网站建设
  • 附近有没有学电脑培训的重庆网站优化方式
  • 企业门户网站建设方案及报价wordpress使用iis
  • 电子商务大型网站建设温州 建网站的公司 新
  • 网站建设制作设计公司哪家好制定网站建设规划书
  • 网站程序找人做还是自己做地方网站盈利模式
  • 全景图网站怎么做中国建筑2022校园招聘