平时工作中时常会用到加密,api签名加密 ,用户注册密码加密
在设计签名验证的时候,一定要满足以下几点:
可变性:每次的签名必须是不一样的。
时效性:每次请求的时效性,过期作废。
唯一性:每次的签名是唯一的。
完整性:能够对传入数据进行验证,防止篡改。
下面主要分享一些工作中常用的加解密的方法。
来看一个比较常用的加密
- private function _createSign()
- {
- $strSalt = 'lasa6WljDkljlkW';
- $strVal = '';
- if ($this->params) {
- $params = $this->params;
- ksort($params);
- $strval = http_build_query($params,'','&',PHP_QUERY_RFC3986);
- }
- return md5(md5($strSalt).md5($strval));
- }
- if($_GET['sign'] != $this->_createSign()){
- echo 'Invalid Sign';
- }
上面用到了md5 散列单项加密 ,不过这种方式安全性肯定不是很高
下面推荐一种password_hash()哈希加密;
- $password = '123456';
- $strPwdHash = password_hash($password,PASSWORD_DEFAULT);
- if(password_verify($password,$strPwdHash)){
- //success;
- }else{
- //fail
- }
下一篇:
SSO单点登录-通俗易懂系统讲解
友情提示:垃圾评论一律封号...