AES加密(php)


AES加密(PHP)

最近在工作中遇到了AES加密,第一次用這個加密,經過摸索解決了我的問題,所以記錄一下,分享一下。(不喜勿噴!!!)

廢話少說直接上代碼:

<?php
	class aes{

		/**
		 * 通過AES加密請求數據
		 * 
		 * @param array $query
		 * @return string
		 */
	 	function AESEncryptRequest($encryptKey, $query){
			return $this->encrypt_pass($query,$encryptKey);
			
		}
		// 加密
	 	function encrypt_pass($input, $key) {
			$size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
			$input = $this->pkcs5_pad($input, $size);
			$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
			$iv = '0102030405060708';
			mcrypt_generic_init($td, $key, $iv);
			$data = mcrypt_generic($td, $input);
			mcrypt_generic_deinit($td);
			mcrypt_module_close($td);
			$data = base64_encode($data);
			return $data;
		}
	 	//填充
	 	function pkcs5_pad ($text, $blocksize) {
			$pad = $blocksize - (strlen($text) % $blocksize);
			return $text . str_repeat(chr($pad), $pad);
		}
	
		/**
		 * 通過AES解密請求數據
		 * 
		 * @param array $query
		 * @return string
		 */
	 	function AESDecryptResponse($encryptKey,$data){
			return $this->decrypt_pass($data,$encryptKey);
			
		}
		// 解密
	  	function decrypt_pass($sStr, $sKey) {
	  		$iv = '0102030405060708';
			$decrypted= mcrypt_decrypt(
				MCRYPT_RIJNDAEL_128,
				$sKey,
				base64_decode($sStr),
				MCRYPT_MODE_CBC,
				$iv
			);
			$dec_s = strlen($decrypted);
			$padding = ord($decrypted[$dec_s-1]);
			$decrypted = substr($decrypted, 0, -$padding);
			return $decrypted;
		}	
	}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM