最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一個(gè)PHP針對(duì)數(shù)字的加密解密類

 更新時(shí)間:2014年03月20日 10:49:20   作者:  
這篇文章主要介紹了一個(gè)PHP針對(duì)數(shù)字的加密解密類,該類僅支持加密數(shù)字。比較適用于數(shù)據(jù)庫(kù)中id字段的加密解密,以及根據(jù)數(shù)字顯示url的加密,需要的朋友可以參考下

復(fù)制代碼 代碼如下:

<?php
/**
 * 加密解密類
 * 該算法僅支持加密數(shù)字。比較適用于數(shù)據(jù)庫(kù)中id字段的加密解密,以及根據(jù)數(shù)字顯示url的加密。
 * @author 深秋的竹子
 * @version alpha
 * @加密原則 標(biāo)記長(zhǎng)度 + 補(bǔ)位 + 數(shù)字替換
 * @加密步驟:
 * 將a-z,A-Z,0-9 62個(gè)字符打亂,取前M(數(shù)字最大的位數(shù))位作為 標(biāo)記長(zhǎng)度字符串,取第M+1 到第M+10位為數(shù)字替換字符串,剩余的為補(bǔ)位字符串
 * 1.計(jì)算數(shù)字長(zhǎng)度n,取亂碼的第n位作為標(biāo)記長(zhǎng)度。
 * 2.計(jì)算補(bǔ)位的長(zhǎng)度,加密串的長(zhǎng)度N -1 - n 為補(bǔ)位的長(zhǎng)度。根據(jù)指定的算法得到補(bǔ)位字符串。
 * 3.根據(jù)數(shù)字替換字符串替換數(shù)字,得到數(shù)字加密字符串。
 * 標(biāo)記長(zhǎng)度字符 + 補(bǔ)位字符串 + 數(shù)字加密字符串 = 加密串
 * Usage:
 *   $obj = new XDeode(9);
 *   $e_txt = $obj->encode(123);
 *   echo $e_txt.'<br/>';
 *   echo $key->decode($e_txt);
 */

class XDeode{
  private $strbase = "Flpvf70CsakVjqgeWUPXQxSyJizmNH6B1u3b8cAEKwTd54nRtZOMDhoG2YLrI";
  private $key,$length,$codelen,$codenums,$codeext;
  function __construct($length = 9,$key = 2543.5415412812){
    $this->key = $key;
    $this->length = $length;
    $this->codelen = substr($this->strbase,0,$this->length);
    $this->codenums = substr($this->strbase,$this->length,10);
    $this->codeext = substr($this->strbase,$this->length + 10);
  }


  function encode($nums){
    $rtn = "";
    $numslen = strlen($nums);
    //密文第一位標(biāo)記數(shù)字的長(zhǎng)度
    $begin = substr($this->codelen,$numslen - 1,1);

    //密文的擴(kuò)展位
    $extlen = $this->length - $numslen - 1;
    $temp = str_replace('.', '', $nums / $this->key);
    $temp = substr($temp,-$extlen);

    $arrextTemp = str_split($this->codeext);
    $arrext = str_split($temp);
    foreach ($arrext as $v) {
      $rtn .= $arrextTemp[$v];
    }

    $arrnumsTemp = str_split($this->codenums);
    $arrnums = str_split($nums);
    foreach ($arrnums as $v) {
      $rtn .= $arrnumsTemp[$v];
    }
    return $begin.$rtn;
  }


  function decode($code){

    $begin = substr($code,0,1);
    $rtn = '';
    $len = strpos($this->codelen,$begin);
    if($len!== false){
      $len++;
      $arrnums = str_split(substr($code,-$len));
      foreach ($arrnums as $v) {
        $rtn .= strpos($this->codenums,$v);
      }
    }

    return $rtn;
  }
}

/**** 示例  ****/
$begin = 9950;
$end = $begin + 50;
$obj = new XDeode(9);
for($i=$begin;$i<$end;$i++){
  $en = $obj->encode($i);
  $de = $obj->decode($en);
  echoln("[{$i}]=[{$en}]=[{$de}]");
}

function echoln($str){
  echo "{$str}<br/>";
}
?>


運(yùn)行示例結(jié)果:

[9950]=[vmizxPPga]=[9950]
[9951]=[vSNSSPPgk]=[9951]
[9952]=[vNQNyPPgV]=[9952]
[9953]=[vyyJJPPgj]=[9953]
[9954]=[vNzQzPPgq]=[9954]
[9955]=[vyNzmPPgg]=[9955]
[9956]=[vXxSNPPge]=[9956]
[9957]=[vXJJJPPgW]=[9957]
[9958]=[vXziQPPgU]=[9958]
[9959]=[viXxSPPgP]=[9959]
[9960]=[vQxmyPPea]=[9960]
[9961]=[viJyJPPek]=[9961]

相關(guān)文章

  • ThinkPHP5框架緩存查詢操作分析

    ThinkPHP5框架緩存查詢操作分析

    這篇文章主要介紹了ThinkPHP5框架緩存查詢操作,結(jié)合實(shí)例形式分析了thinkPHP5緩存的設(shè)置、使用、查詢等相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • 基于PHP代碼實(shí)現(xiàn)中獎(jiǎng)概率算法可用于刮刮卡、大轉(zhuǎn)盤等抽獎(jiǎng)算法

    基于PHP代碼實(shí)現(xiàn)中獎(jiǎng)概率算法可用于刮刮卡、大轉(zhuǎn)盤等抽獎(jiǎng)算法

    大轉(zhuǎn)盤中獎(jiǎng)概率算法在我們的日常生活中,經(jīng)常遇到,那么基于php代碼是如何實(shí)現(xiàn)中獎(jiǎng)概率算法的,下面通過(guò)一段代碼實(shí)例給大家介紹php中獎(jiǎng)概率算法
    2015-12-12
  • Thinkphp5.0 框架實(shí)現(xiàn)控制器向視圖view賦值及視圖view取值操作示例

    Thinkphp5.0 框架實(shí)現(xiàn)控制器向視圖view賦值及視圖view取值操作示例

    這篇文章主要介紹了Thinkphp5.0 框架實(shí)現(xiàn)控制器向視圖view賦值及視圖view取值操作,結(jié)合實(shí)例形式分析了thinkPHP控制器向視圖傳值及從視圖取值相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • thinkPHP基于ajax實(shí)現(xiàn)的菜單與分頁(yè)示例

    thinkPHP基于ajax實(shí)現(xiàn)的菜單與分頁(yè)示例

    這篇文章主要介紹了thinkPHP基于ajax實(shí)現(xiàn)的菜單與分頁(yè),結(jié)合實(shí)例形式分析了thinkPHP基于ajax無(wú)刷新交互實(shí)現(xiàn)菜單及分頁(yè)功能的相關(guān)技巧與注意事項(xiàng),需要的朋友可以參考下
    2016-07-07
  • PHP CURL獲取cookies模擬登錄的方法

    PHP CURL獲取cookies模擬登錄的方法

    利用PHP的curl函數(shù)實(shí)現(xiàn)模擬登錄的方法。
    2013-11-11
  • 深入解析php之a(chǎn)pc

    深入解析php之a(chǎn)pc

    本篇文章是對(duì)php中apc的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 從ThinkPHP3.2.3過(guò)渡到ThinkPHP5.0學(xué)習(xí)筆記圖文詳解

    從ThinkPHP3.2.3過(guò)渡到ThinkPHP5.0學(xué)習(xí)筆記圖文詳解

    這篇文章主要介紹了從ThinkPHP3.2.3過(guò)渡到ThinkPHP5.0學(xué)習(xí)筆記,結(jié)合圖文形式詳細(xì)分析了thinkPHP3.2.3框架開發(fā)過(guò)渡到thinkPHP5.0框架的區(qū)別與改進(jìn)方法,需要的朋友可以參考下
    2019-04-04
  • PHP實(shí)現(xiàn)數(shù)組向任意位置插入,刪除,替換數(shù)據(jù)操作示例

    PHP實(shí)現(xiàn)數(shù)組向任意位置插入,刪除,替換數(shù)據(jù)操作示例

    這篇文章主要介紹了PHP實(shí)現(xiàn)數(shù)組向任意位置插入,刪除,替換數(shù)據(jù)操作,結(jié)合實(shí)例形式分析了php中array_splice函數(shù)具體功能、參數(shù)及數(shù)組的插入、刪除、數(shù)值替換等相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • PHP-FPM之Chroot執(zhí)行環(huán)境詳解

    PHP-FPM之Chroot執(zhí)行環(huán)境詳解

    在PHP-FPM中設(shè)立chroot,有很好的隔離作用,提高系統(tǒng)安全性,但是要想建立一個(gè)合理的PHP-FPM Chroot環(huán)境難度有點(diǎn)大,比用debootstrap等工具建立還要麻煩,這篇文章就詳細(xì)介紹了PHP-FPM之Chroot執(zhí)行環(huán)境,需要的朋友可以參考下。
    2015-08-08
  • PHP無(wú)限分類(樹形類)

    PHP無(wú)限分類(樹形類)

    PHP無(wú)限分類,Google一下就能找到很多相關(guān)資料,思路比較拉風(fēng)的,也是用得比較多的就是分類表至少有id,pid,name三個(gè)字段,id自增表分類,pid為父分類,name為分類名,這樣就構(gòu)成了一棵樹,如下,算是我查詢分類表得到的結(jié)果集
    2013-09-09

最新評(píng)論

奉新县| 木兰县| 和静县| 达拉特旗| 丰台区| 剑河县| 廊坊市| 屏山县| 花莲市| 禹州市| 宣恩县| 石阡县| 大关县| 布尔津县| 社旗县| 浦北县| 会泽县| 黔江区| 株洲县| 宿松县| 象山县| 小金县| 榆中县| 名山县| 博爱县| 甘南县| 开远市| 沙洋县| 汾阳市| 甘泉县| 巢湖市| 台江县| 溧阳市| 称多县| 余姚市| 嘉峪关市| 栖霞市| 文安县| 溧水县| 都匀市| 峨边|