当前位置:首页 > PHP教程 > php应用 > 列表

PHP使用自定义key实现对数据加密解密的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-22 13:39:59 浏览: 评论:0 

这篇文章主要介绍了PHP使用自定义key实现对数据加密解密的方法,涉及php针对字符串的转换、截取等操作实现加密解密功能的相关技巧,需要的朋友可以参考下。

本文实例讲述了PHP使用自定义key实现对数据加密解密的方法,分享给大家供大家参考,具体如下:

客户端和服务端通信时,有个场景很常见,通过一个id作为url参数来回传递。假设现在业务上只有这个id标识,那么需要稍微安全一点的通信,对这个id进行加密传输,到服务端再进行解密。这里需要一个服务端进行保密的key,利用这个key进行加密和解密。

加解密的方法如下:$str是需要加解密的字符串,$key是自己定义的一个key

  1. // 加密 
  2. function encryptStr($str$key){ 
  3.   $block = mcrypt_get_block_size('des''ecb'); 
  4.   $pad = $block - (strlen($str) % $block); 
  5.   $str .= str_repeat(chr($pad), $pad); 
  6.   $enc_str = mcrypt_encrypt(MCRYPT_DES, $key$str, MCRYPT_MODE_ECB); 
  7.   return base64_encode($enc_str); 
  8. // 解密 
  9. function decryptStr($str$key){ 
  10.   $str = base64_decode($str); 
  11.   $str = mcrypt_decrypt(MCRYPT_DES, $key$str, MCRYPT_MODE_ECB); 
  12.   $block = mcrypt_get_block_size('des''ecb'); 
  13.   $pad = ord($str[($len = strlen($str)) - 1]); 
  14.   return substr($str, 0, strlen($str) - $pad); 

值得一提的是:如果说应用到url中id的这个场景,那么加密过后,是base64的编码,建议再urlencode()下,去除+号的影响。

Tags: PHP自定义key PHP数据加密解密

分享到: