数値の PHP 暗号化および復号化クラス_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:35:28
オリジナル
885 人が閲覧しました

コードをコピーします コードは次のとおりです:

/**
* 暗号化および復号化クラス
* このアルゴリズムは、暗号化された数値のみをサポートします。データベースの ID フィールドの暗号化と復号化、および数値に基づいて表示される URL の暗号化に適しています。
* @author Late Autumn Bamboo
* @version alpha
* @暗号化原則のマークの長さ + パディング + 数値置換
* @暗号化の手順:
* 62 文字 a-z、A-Z、0-9 をスクランブルし、最初の M を取得します (数値の最大桁数) をマーク長文字列として使用し、M+1 桁から M+10 桁までをデジタル置換文字列として、残りを補数文字列とします
* 1. 数値の長さ n を計算し、 n 番目のビットはマーク長として使用されます。
* 2. 補数の長さを計算します。暗号化された文字列 N -1 - n の長さが補数の長さになります。指定されたアルゴリズムに従って補文字列を取得します。
* 3. 数値置換文字列に従って数値を置換し、デジタル暗号化された文字列を取得します。
* マーク長文字 + パディング文字列 + デジタル暗号化文字列 = 暗号化文字列
* 使用法:
* $obj = new XDeode(9);
* $e_txt = $obj->encode(123);
* echo $e_txt .'
';
* echo $key->decode($e_txt);
*/

クラス 3.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 ->長さ + 10);
}


function encode($nums){

$rtn = "";

$numslen = strlen($nums);
//暗号文の最初にマークされた番号の長さ
$begin = substr($this->コードレン ,$numslen - 1,1);

//暗号文の拡張ビット
$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;
}


関数デコード($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);
}
}

$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}]");
}

関数 echoln($str){
echo "{$str}
";

}

?>

例の実行結果:

[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]

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/743929.html技術記事次のようにコードをコピーします。 ?php /** * 暗号化および復号化クラス * このアルゴリズムは、暗号化された数値のみをサポートします。データベースの ID フィールドの暗号化と復号化、および数値に基づいて表示される URL の暗号化に適しています。 ...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート