cari
Rumahphp教程php手册PHP中加密解密函数与DES加密解密实例

这篇文章主要介绍了PHP中加密解密函数与DES加密解密,以实例形式分析了常用的PHP加密解密算法encrypt与DES加密解密的原理及应用方法,非常具有实用价值,需要的朋友

本文实例讲述了PHP中加密解密函数与DES加密解密的应用,,分享给大家供大家参考。具体如下:

例子,php加密解密的例子

加密函数:

复制代码 代码如下:

/*
*功能:对字符串进行加密处理
*参数一:需要加密的内容
*参数二:密钥
*/
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++]);
 }
 return base64_encode(passport_key($tmp,$key));
}

解密代码如下:

复制代码 代码如下:

/*
*功能:对字符串进行解密处理
*参数一:需要解密的密文
*参数二:密钥
*/
function passport_decrypt($str,$key){ //解密函数
 $str=passport_key(base64_decode($str),$key);
 $tmp='';
 for($i=0;$i   $md5=$str[$i];
  $tmp.=$str[++$i] ^ $md5;
 }
 return $tmp;
}


辅助函数:

复制代码 代码如下:

/*
*辅助函数
*/
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;
}


使用如下所示

复制代码 代码如下:

$str='作者:';
$key='123456';
$encrypt=passport_encrypt($str,$key);
$decrypt=passport_decrypt($encrypt,$key);
echo '原文:',$str."


";
echo '密文:',$encrypt."

";
echo '译文:',$decrypt."

";
DES加密解密函数具体代码如下:

复制代码 代码如下:

class DES
{
 var $key;
 var $iv; //偏移量
 
 function DES( $key, $iv=0 ) {
 //key长度8例如: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) {
 //加密,返回大写十六进制字符串
  $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) {
 //解密
  $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    $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 );
 }
}
?>


以下是测试结果:

复制代码 代码如下:

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


例子2

代码如下:

复制代码 代码如下:

/**
*加密需通过get方式在url中传递的参数
*/
function args_encode($data) {
if(is_array($data)) {
$string = http_build_query($data);
return base64_encode($string);
} else {
return false;
}
}

/**
*获取url中get方式传递的参数
*/
function getargs() {
$string = base64_decode($_GET['args']);
parse_str($string,$g);
return $g;
}

希望本文所述对大家的PHP程序设计有所帮助。

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa