平时工作中时常会用到加密,api签名加密 ,用户注册密码加密

在设计签名验证的时候,一定要满足以下几点:

  • 可变性:每次的签名必须是不一样的。

  • 时效性:每次请求的时效性,过期作废。

  • 唯一性:每次的签名是唯一的。

  • 完整性:能够对传入数据进行验证,防止篡改。

下面主要分享一些工作中常用的加解密的方法。

来看一个比较常用的加密

  1. private function _createSign()
  2. {
  3. $strSalt = 'lasa6WljDkljlkW';
  4. $strVal = '';
  5. if ($this->params) {
  6. $params = $this->params;
  7. ksort($params);
  8. $strval = http_build_query($params,'','&',PHP_QUERY_RFC3986);
  9. }
  10. return md5(md5($strSalt).md5($strval));
  11. }
  12.  
  13. if($_GET['sign'] != $this->_createSign()){
  14. echo 'Invalid Sign';
  15. }

上面用到了md5  散列单项加密 ,不过这种方式安全性肯定不是很高

下面推荐一种password_hash()哈希加密;

  1. $password = '123456';
  2. $strPwdHash = password_hash($password,PASSWORD_DEFAULT);
  3. if(password_verify($password,$strPwdHash)){
  4. //success;
  5. }else{
  6. //fail
  7. }

相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!