程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP加密解密函數

PHP加密解密函數

編輯:PHP綜合

  在做項目時需要對部分數據進行加密和解密,經過一番研究寫了一個函數,在這裡和大家分享一下這個PHP加密解密的函數,此函數實現了對部分變量值的加密的功能。
  加密代碼如下:
  /*
  *功能:對字符串進行加密處理
  *參數一:需要加密的內容
  *參數二:密鑰
  */
  function passport_encrypt($str,$key){ //加密函數
  srand((double)microtime() * 1000000);
  $encrypt_key=md5(rand(0, 32000));
  $ctr=0;
  $tmp='';
  for($i=0;$i<strlen($str);$i++){
  $ctr=$ctr==strlen($encrypt_key)?0:$ctr;
  $tmp.=$encrypt_key[$ctr].($str[$i] ^ $encrypt_key[$ctr++]);
  }
  return base64_encode(passport_key($tmp,$key));
  }
  解密代碼如下:
  /*
  *功能:對字符串進行解密處理
  *參數一:需要解密的密文
  *參數二:密鑰
  */
  function passport_decrypt($str,$key){ //解密函數
  $str=passport_key(base64_decode($str),$key);
  $tmp='';
  for($i=0;$i<strlen($str);$i++){
  $md5=$str[$i];
  $tmp.=$str[++$i] ^ $md5;
  }
  return $tmp;
  }
  輔助函數:
  /*
  *輔助函數
  */
  function passport_key($str,$encrypt_key){
  $encrypt_key=md5($encrypt_key);
  $ctr=0;
  $tmp='';
  for($i=0;$i<strlen($str);$i++){
  $ctr=$ctr==strlen($encrypt_key)?0:$ctr;
  $tmp.=$str[$i] ^ $encrypt_key[$ctr++];
  }
  return $tmp;
  }
  使用如下所示:
  $str='作者:';
  $key='123456';
  $encrypt=passport_encrypt($str,$key);
  $decrypt=passport_decrypt($encrypt,$key);
  echo '原文:',$str."<br><hr>";
  echo '密文:',$encrypt."<br><hr>";
  echo '譯文:',$decrypt."<br><hr>";

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved