PHP および DES の暗号化関数と復号化関数の暗号化と復号化の例、phpdes 暗号化と復号化の例_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:17:01
オリジナル
985 人が閲覧しました

PHP の暗号化および復号化関数と DES 暗号化および復号化の例、phpdes 暗号化および復号化の例

この記事の例では、PHP での暗号化関数と復号化関数および DES 暗号化と復号化の適用について説明しており、参考のために皆さんと共有されています。詳細は以下の通りです

例、php暗号化と復号化の例

暗号化機能:

コードをコピーします コードは次のとおりです:
/*
*機能: 文字列を暗号化します
*パラメータ1: 暗号化が必要なコンテンツ
*パラメータ 2: キー
*/
function Passport_encrypt($str,$key){ //暗号化関数
srand((double)microtime() * 1000000);
$encrypt_key=md5(rand(0, 32000));
$ctr=0;
$tmp='';
for($i=0;$i $ctr=$ctr==strlen($encrypt_key)?0:$ctr;
$tmp.=$encrypt_key[$ctr].($str[$i] ^ $encrypt_key[$ctr++]);
}
returnbase64_encode(passport_key($tmp,$key));
}

復号化コードは次のとおりです:

コードをコピーします コードは次のとおりです:
/*
*機能: 文字列を復号化します
*パラメータ1: 復号化する暗号文
*パラメータ 2: キー
*/
functionパスポート_decrypt($str,$key){ //復号化関数
$str=passport_key(base64_decode($str),$key);
$tmp='';
for($i=0;$i $md5=$str[$i];
$tmp.=$str[++$i] ^ $md5;
}
$tmp を返します;
}

補助機能:
コードをコピーします コードは次のとおりです:
/*
*補助機能
*/
関数パスポート_キー($str,$encrypt_key){
$encrypt_key=md5($encrypt_key);
$ctr=0;
$tmp='';
for($i=0;$i $ctr=$ctr==strlen($encrypt_key)?0:$ctr;
$tmp.=$str[$i] ^ $encrypt_key[$ctr++];
}
$tmp を返します;
}

以下のように使用します
コードをコピーします コードは次のとおりです:
$str='著者: www.jb51.net';
$key='123456';
$encrypt=passport_encrypt($str,$key);
$decrypt=passport_decrypt($encrypt,$key);
echo '元のテキスト:',$str."

";
echo 'Cryptotext:',$encrypt."

";
echo '翻訳:',$decrypt."

";

DES 暗号化および復号化関数の具体的なコードは次のとおりです:
コードをコピーします コードは次のとおりです:
クラスDES
{
var $key;
var $iv; // オフセット

関数 DES( $key, $iv=0 ) {
//キーの長さ 8 例: 1234abcd
$this->key = $key;
if( $iv == 0 ) {
$this->iv = $key;
} その他 {
$this->iv = $iv; //mcrypt_create_iv (mcrypt_get_block_size (MCRYPT_DES, MCRYPT_MODE_CBC), MCRYPT_DEV_RANDOM);
}
}

関数暗号化($str) {
//暗号化して、大文字の 16 進数の文字列を返します
$size = mcrypt_get_block_size ( MCRYPT_DES, MCRYPT_MODE_CBC );
$str = $this->pkcs5Pad ( $str, $size );
Return strtoupper( bin2hex( mcrypt_cbc(MCRYPT_DES, $this->key, $str, MCRYPT_ENCRYPT, $this->iv ) ) );
}

関数復号化($str) {
//復号化
$strBin = $this->hex2bin( strto lower( $str ) );
$str = mcrypt_cbc( MCRYPT_DES, $this->key, $strBin, MCRYPT_DECRYPT, $this->iv );
$str = $this->pkcs5Unpad( $str );
$str;
を返します }

関数 hex2bin($hexData) {
$binData = "";
for($i = 0; $i $binData .= chr ( hexdec ( substr ( $hexData, $i, 2 ) ) );
}
$binData を返します;
}

関数 pkcs5Pad($text, $blocksize) {
$pad = $blocksize - (strlen ( $text ) % $blocksize);
$text を返します ( chr ( $pad ), $pad );
}

関数 pkcs5Unpad($text) {
$pad = ord ( $text {strlen ( $text ) - 1} );
if ($pad > strlen ( $text ))
false を返します;
if (strspn ( $text, chr ( $pad ), strlen ( $text ) - $pad ) != $pad)
false を返します;
substr ( $text, 0, - 1 * $pad ) を返します;
}
}
?>

テスト結果は次のとおりです:
コードをコピーします コードは次のとおりです:
$str = '12345678';
$key = '1234abcd';
$crypt = 新しい DES($key);
$mstr = $crypt->encrypt($str);
$str = $crypt->decrypt($mstr);
エコー $str.' <=> '.$mstr;

例 2

コードは次のとおりです:

コードをコピーします コードは次のとおりです:
/**
*getメソッドを通じてURLで渡す必要があるパラメータを暗号化します
*/
関数 args_encode($data) {
if(is_array($data)) {
$string = http_build_query($data);
returnbase64_encode($string);
} その他 {
false を返します;
}
}

/**
*URLのgetメソッドで渡されたパラメータを取得します
*/
関数 getargs() {
$string =base64_decode($_GET['args']);
parse_str($string,$g);
$g を返します;
}

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

phpの暗号化と復号化関数

base64_encode と
base64_decode ソリューション

PHP DES暗号化機能

2つの関数は次のとおりです。Crypt
FunctionEncrypt($ encrypt、$ key = ""){
$ iv = mcrypt_create_iv(mcrypt_get_iv_size(mcrypt_rijndael_256、mcrypt_mode_ecb) dael_256、 $key , $encrypt, MCRYPT_MODE_ECB, $iv );
$encode = Base64_encode ( $passcrypt );
return $encode;
}

復号化関数: decrypt
function decrypt($decrypt,$key="") {
$decoded =base64_decode ( $decrypt );
$iv = mcrypt_create_iv ( mcrypt_get_iv_size ( MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB ), MCRYPT_RAND );
$decrypted = mcrypt_decrypt ( MCRYPT_RIJNDAEL_256, $key, $decoded, MCRYPT_MODE_ECB, $iv );
$decrypted を返します。
}


http://www.bkjia.com/PHPjc/895109.html

tru​​ehttp://www.bkjia.com/PHPjc/895109.html技術記事 PHP および DES の暗号化および復号化関数の暗号化および復号化の例、phpdes 暗号化および復号化の例 この記事では、PHP における暗号化および復号化関数と DES の暗号化および復号化の適用について説明し、参考として皆さんに共有します。 ...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート