Home  >  Article  >  Backend Development  >  Encryption and decryption functions in PHP and DES encryption and decryption examples, phpdes encryption and decryption examples_PHP tutorial

Encryption and decryption functions in PHP and DES encryption and decryption examples, phpdes encryption and decryption examples_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:17:01989browse

Encryption and decryption functions and DES encryption and decryption examples in PHP, phpdes encryption and decryption examples

The example in this article describes the application of encryption and decryption functions and DES encryption and decryption in PHP, and is shared with everyone for your reference. The details are as follows:

Example, PHP encryption and decryption example

Encryption function:

Copy code 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:

Copy code 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:
Copy code 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
Copy code 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:
Copy code 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:
Copy code 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:

Copy code 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;
}

I hope this article will be helpful to everyone’s PHP programming design.

php encryption and decryption function

base64_encode plus
base64_decode solution

PHP DES encryption function

The two functions are as follows:
Encryption function: encrypt
function encrypt($encrypt,$key="") {
$iv = mcrypt_create_iv ( mcrypt_get_iv_size ( MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB ), MCRYPT_RAND );
$ passcrypt = mcrypt_encrypt ( MCRYPT_RIJNDAEL_256, $key, $encrypt, MCRYPT_MODE_ECB, $iv );
$encode = base64_encode ( $passcrypt );
return $encode;
}

Decryption function: 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 );
return $decrypted;
}

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/895109.htmlTechArticleEncryption and decryption functions in PHP and DES encryption and decryption examples, phpdes encryption and decryption examples This article describes the encryption and decryption functions in PHP The application of DES encryption and decryption is shared with everyone for your reference. ...
Statement:
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