欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php源碼分析之DZX1.5加密解密函數(shù)authcode用法

 更新時間:2015年06月17日 16:35:07   作者:邪惡的小Y  
這篇文章主要介紹了php源碼分析之DZX1.5加密解密函數(shù)authcode用法,實例分析了DZX1.5中authcode函數(shù)加密與解密的使用技巧,需要的朋友可以參考下

本文實例講述了php源碼分析之DZX1.5加密解密函數(shù)authcode用法。分享給大家供大家參考。具體分析如下:

<?php
$authkey = '';
/**
 * @param string $string: 輸入的需要加密(或解密)的明文(或密文)
 * @param string $operation: 'DECODE'或其它,其中默認(rèn)表示解密,輸入其它表示加密
 * @param string $key: 加解密密鑰
 * @param int $expiry: 有效期
 */
function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
  global $authkey;
  $ckey_length = 4;
  $key = md5($key != '' ? $key : $authkey);
  $keya = md5(substr($key, 0, 16));
  $keyb = md5(substr($key, 16, 16));
  $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';
  $cryptkey = $keya.md5($keya.$keyc);
  $key_length = strlen($cryptkey);
  $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
  $string_length = strlen($string);
  $result = '';
  $box = range(0, 255);
  $rndkey = array();
  for($i = 0; $i <= 255; $i++) {
    $rndkey[$i] = ord($cryptkey[$i % $key_length]);
  }
  for($j = $i = 0; $i < 256; $i++) {
    $j = ($j + $box[$i] + $rndkey[$i]) % 256;
    $tmp = $box[$i];
    $box[$i] = $box[$j];
    $box[$j] = $tmp;
  }
  for($a = $j = $i = 0; $i < $string_length; $i++) {
    $a = ($a + 1) % 256;
    $j = ($j + $box[$a]) % 256;
    $tmp = $box[$a];
    $box[$a] = $box[$j];
    $box[$j] = $tmp;
    $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
  }
  if($operation == 'DECODE') {
    if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
      return substr($result, 26);
    } else {
      return '';
    }
  } else {
    return $keyc.str_replace('=', '', base64_encode($result));
  }
}
$str = '1234';
$key = '1234';
echo "明文:".$str;
echo "<br />";
echo "密鑰:".$key;
$encode = authcode($str,'11',$key);
echo "<br />";
echo "加密后的密文:".$encode;
echo "<br />";
$decode = authcode($encode,'DECODE',$key);
echo "解密后的明文:".$decode;
/*End of php*/

運(yùn)行結(jié)果如下:

明文:1234
密鑰:1234
加密后的密文:a52f67eXZGVy0HtQBo4vOREhq3WxnL6E2zlx75JGfoJW
解密后的明文:1234

希望本文所述對大家的php程序設(shè)計有所幫助。

相關(guān)文章

  • PHP實現(xiàn)處理三級分類數(shù)據(jù)的示例代碼

    PHP實現(xiàn)處理三級分類數(shù)據(jù)的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用PHP實現(xiàn)處理三級分類數(shù)據(jù),文中的示例代碼講解詳細(xì),具有一定的借鑒價值,有需要的小伙伴可以參考一下
    2024-02-02
  • PHP可逆加密/解密函數(shù)分享

    PHP可逆加密/解密函數(shù)分享

    很多項目的會員系統(tǒng),都要求要有記住登錄功能,在通過cookies實現(xiàn)功能是,由于要將客戶信息直接保存到cookies,如果直接寫入cookies勢必會帶來安全隱患,因此通過可逆加密后再保存到cookies相對就安全了
    2012-09-09
  • PHP數(shù)組實例總結(jié)與說明

    PHP數(shù)組實例總結(jié)與說明

    PHP中共有超過30個新的數(shù)組相關(guān)函數(shù),其中很多通用函數(shù)允許您檢查給定數(shù)組中是否存在特定對象、對數(shù)組元素計數(shù)、增加或刪除元素,或?qū)υ嘏判颉?
    2011-08-08
  • 詳解PHP實現(xiàn)異步調(diào)用的4種方法

    詳解PHP實現(xiàn)異步調(diào)用的4種方法

    這篇文章主要為大家詳細(xì)介紹PHP實現(xiàn)異步調(diào)用的4種方法,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 編寫PHP腳本過濾用戶上傳的圖片

    編寫PHP腳本過濾用戶上傳的圖片

    這篇文章主要介紹了編寫PHP腳本過濾用戶上傳的圖片,至于是不是能達(dá)到設(shè)想的準(zhǔn)確過濾那種圖片的效果,這個就...需要的朋友可以參考下
    2015-07-07
  • linux下刪除7天前日志的代碼(php+shell)

    linux下刪除7天前日志的代碼(php+shell)

    shell 版本比較麻煩 關(guān)鍵我linux轉(zhuǎn)換不熟悉
    2011-01-01
  • php解析html類庫simple_html_dom(詳細(xì)介紹)

    php解析html類庫simple_html_dom(詳細(xì)介紹)

    一直以來使用php解析html文檔樹都是一個難題。Simple HTML DOM parser 幫我們很好地解決了這個問題??梢酝ㄟ^這個php類來解析html文檔,對其中的html元素進(jìn)行操作 (PHP5+以上版本)
    2013-07-07
  • PHP下對數(shù)組進(jìn)行排序的函數(shù)

    PHP下對數(shù)組進(jìn)行排序的函數(shù)

    如果你已經(jīng)使用了一段時間PHP的話,那么,你應(yīng)該已經(jīng)對它的數(shù)組比較熟悉了——這種數(shù)據(jù)結(jié)構(gòu)允許你在單個變量中存儲多個值,并且可以把它們作為一個集合進(jìn)行操作。
    2010-08-08
  • 詳解PHP中的狀態(tài)模式編程

    詳解PHP中的狀態(tài)模式編程

    這篇文章主要介紹了詳解PHP中的狀態(tài)模式編程,有利于團(tuán)隊協(xié)作編程,需要的朋友可以參考下
    2015-08-08
  • PHP判斷是否為空的幾個函數(shù)對比

    PHP判斷是否為空的幾個函數(shù)對比

    這篇文章主要介紹了PHP判斷是否為空的幾個函數(shù)對比,本文講解了gettype()、empty()、is_null()、isset()等幾個函數(shù)在不同變量下的返回值情況,需要的朋友可以參考下
    2015-04-04

最新評論