加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP的DES加密解密怎么运用?

发布时间:2021-12-23 12:42:05 所属栏目:PHP教程 来源:互联网
导读:对关键字符进行加密加密是比较常见的操作,对此这篇文章就给大家分享一下php中加密解密DES类的使用,小编认为是比较实用的,感兴趣的朋友可以了解一下,下面就跟随小编一起来学习吧。 在平时的开发工作中,我们经常会对关键字符进行加密,可能为了安全也可能
   对关键字符进行加密加密是比较常见的操作,对此这篇文章就给大家分享一下php中加密解密DES类的使用,小编认为是比较实用的,感兴趣的朋友可以了解一下,下面就跟随小编一起来学习吧。
 
       在平时的开发工作中,我们经常会对关键字符进行加密,可能为了安全也可能为了规范,所以要正确使用DES加密解密
 
 
 
       代码1:
class DES
{
  var $key; // 密钥
  var $iv; // 偏移量
 
  function __construct( $key, $iv=0 ) {
    $this->key = $key;
    if( $iv == 0 ) {
 
      $this->iv = $key;
 
    } else {
 
      $this->iv = $iv;
      // 创建初始向量, 并且检测密钥长度, Windows 平台请使用 MCRYPT_RAND
      // mcrypt_create_iv ( mcrypt_get_block_size (MCRYPT_DES, MCRYPT_MODE_CBC), MCRYPT_DEV_RANDOM );
 
    }
 
  }
 
  function encrypt($str) {
    //加密,返回大写十六进制字符串
    $size = mcrypt_get_block_size ( MCRYPT_DES, MCRYPT_MODE_CBC );
 
    $str = $this->pkcs5Pad ( $str, $size );
 // bin2hex 把 ASCII 字符的字符串转换为十六进制值
    return strtoupper( bin2hex( mcrypt_cbc(MCRYPT_DES, $this->key, $str, MCRYPT_ENCRYPT, $this->iv ) ) );
 
  }
 
  function decrypt($str) {
    //解密
 
    $strBin = $this->hex2bin( strtolower( $str ) );
 
    $str = mcrypt_cbc( MCRYPT_DES, $this->key, $strBin, MCRYPT_DECRYPT, $this->iv );
 
    $str = $this->pkcs5Unpad( $str );
 
    return $str;
 
  }
 
 
  function hex2bin($hexData) {
 
    $binData = "";
 
    for($i = 0; $i < strlen ( $hexData ); $i += 2) {
 
      $binData .= chr ( hexdec ( substr ( $hexData, $i, 2 ) ) );
 
    }
 
    return $binData;
 
  }
 
  function pkcs5Pad($text, $blocksize) {
 
    $pad = $blocksize - (strlen ( $text ) % $blocksize);
 
    return $text . str_repeat ( chr ( $pad ), $pad );
 
  }
 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读