Encryption and decryption functions and DES encryption and decryption examples in PHP_PHP tutorial

WBOY
Release: 2016-07-13 10:16:33
Original
870 people have browsed it

Examples of encryption and decryption functions and DES encryption and decryption in PHP

Examples of encryption and decryption in PHP

Encryption function:

The code is as follows:

/*
*Function: Encrypt string
*Parameter 1: Content that needs to be encrypted
*Parameter 2: Key
*/
function passport_encrypt($str,$key){ //Encryption function
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++]);
}
return base64_encode(passport_key($tmp,$key));
}

The decryption code is as follows:

The code is as follows:

/*
*Function: Decrypt string
*Parameter 1: Ciphertext to be decrypted
*Parameter 2: Key
*/
function passport_decrypt($str,$key){ //Decryption function
$str=passport_key(base64_decode($str),$key);
$tmp='';
for($i=0;$i $md5=$str[$i];
$tmp.=$str[++$i] ^ $md5;
}
return $tmp;
}


Auxiliary function:

The code is as follows:

/*
*Auxiliary function
*/
function passport_key($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++];
}
return $tmp;
}


Use as shown below

The code is as follows:

$str='Author: www.jb51.net';
$key='123456';
$encrypt=passport_encrypt($str,$key);
$decrypt=passport_decrypt($encrypt,$key);
echo 'Original text:',$str."

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

";
echo 'Translation:',$decrypt."

";


The specific code of the DES encryption and decryption function is as follows:

The code is as follows:

class DES
{
var $key;
var $iv; //Offset

function DES( $key, $iv=0 ) {
//Key length 8, for example: 1234abcd
$this->key = $key;
if( $iv == 0 ) {
$this->iv = $key;
} else {
$this->iv = $iv; //mcrypt_create_iv (mcrypt_get_block_size (MCRYPT_DES, MCRYPT_MODE_CBC), MCRYPT_DEV_RANDOM);
}
}

function encrypt($str) {
//Encrypt, return uppercase hexadecimal string
$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 ) ) );
}

function decrypt($str) {
//Decrypt
$strBin = $this->hex2bin( strtolower( $str ) );
$str = mcrypt_cbc( MCRYPT_DES, $this->key, $strBin, MCRYPT_DECRYPT, $this->iv );
$str = $this->pkcs5Unpad( $str );
Return $str;
}

function hex2bin($hexData) {
$binData = "";
for($i = 0; $i < strlen ( $hexData ); $i += 2) {
$binData .= chr ( hexdec ( substr ( $hexData, $i, 2 ) ) );
}
Return $binData;
}

function pkcs5Pad($text, $blocksize) {
$pad = $blocksize - (strlen ( $text ) % $blocksize);
Return $text . str_repeat ( chr ( $pad ), $pad );
}

function pkcs5Unpad($text) {
$pad = ord ( $text {strlen ( $text ) - 1} );
if ($pad > strlen ( $text ))
Return false;
if (strspn ( $text, chr ( $pad ), strlen ( $text ) - $pad ) != $pad)
Return false;
Return substr ( $text, 0, - 1 * $pad );
}
}
?>


The following are the test results:

The code is as follows:

$str = '12345678';
$key = '1234abcd';
$crypt = new DES($key);
$mstr = $crypt->encrypt($str);
$str = $crypt->decrypt($mstr);
echo $str.' <=> '.$mstr;


Example 2

The code is as follows:

The code is as follows:

/**
*Encrypt parameters that need to be passed in the url through get method
*/
function args_encode($data) {
if(is_array($data)) {
$string = http_build_query($data);
return base64_encode($string);
} else {
return false;
}
}

/**
*Get the parameters passed in the get method in the url
*/
function getargs() {
$string = base64_decode($_GET['args']);
parse_str($string,$g);
return $g;
}

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/896780.htmlTechArticlePHP encryption and decryption functions and DES encryption and decryption examples, PHP encryption and decryption examples encryption function: The code is as follows: / * *Function: Encrypt string *Parameter 1: Encryption required...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!