PHPと3DES暗号化と復号化

<?phpの
/ ** 
 * 3DES加密
 * / 
クラスの暗号化{ 
	パブリック関数pkcs5_pad($テキスト、$のブロックサイズ){ 
		$パッド= $ブロックサイズ- (STRLEN($テキスト)%$ブロックサイズ)。
		$テキストを返します。STR_Repeat(CHR($パッド)、$パッド); 
	} 

	パブリック関数pkcs5_unpad($テキスト){ 
		$パッド= ORD($テキスト{strlenを($テキスト) - 1})。
		($パッド> strlenを($テキスト)){場合は
			falseを返します。
		} 
		戻りSUBSTR($テキスト、0、-1 * $パッド); 
	} 
	
     
	/ ** 
	*加密
	* @paramの$キー
	* @paramの$入力
	* @return文字列
	* / 
	パブリック関数des3Encryption($キー、$入力){  
		$入力=の$ this - > pkcs5_pad($入力、8)。
		$のTD =は、mcrypt_module_open( 'トリプルDES'、 ''、 'ECB'、「 「);
		$ IV = mcrypt_create_iv(mcrypt_enc_get_iv_size($のTD)、MCRYPT_RAND)。
		mcrypt_generic_init($ tdが、$キー、$ IV); 
		$ en_res = mcrypt_generic($のTD、$入力)。
		mcrypt_generic_deinit($のTD); 
		mcrypt_module_close($のTD); 
		$ en_resを返します。
	} 
	
	/ ** 
     *解密
     * @paramの$キー
     * @paramする$陰窩
     * @return文字列
     * / 
	パブリック関数DES3DECRYPT($キー、$の陰窩){ 
		$の陰窩= BASE64_DECODE($の陰窩)。
	   $ TD =は、mcrypt_module_open( 'トリプルDES'、 ''、 'ECB'、 ''); 
		mcrypt_generic_deinit($のTD); 
		mcrypt_module_close($のTD);
	   $ IV = mcrypt_create_iv(mcrypt_enc_get_iv_size($のTD)、MCRYPT_RAND)。
		mcrypt_generic_init($ tdが、$キー、$ IV); 
		$ decrypted_data = mdecrypt_generic($ tdが、$の暗号)。
		$ decrypted_data =の$ this - > pkcs5_unpad($のdecrypted_data)。
		RTRIM返す($ decrypted_data)。
	} 
	
	
} 

$ OBJ =新しい暗号化(); 

$キー= "9oyKs7cVo1yYzkuisP9bhA =="; 
$入力= '123456'; 

$ enc_res = BASE64_ENCODE($ obj-> des3Encryption($キー、$入力))。
$ enc_resをエコー。

$暗号= 'KkljLXJH9jnUg4 + UyiPjzsmohuAxRTi0Iybiub47dTySoEqIK2NKg / LgKzhXWRc3Eken0YW09xcApE6kJEUfoEIsrAWnsnSCeZjr62quFEMv51BlE7RmUALXIta + P3aVRl5D6fg + xpeIgsJAY9kkhmLmdQmbvB3hMqwF / Gh7X6ZYGr7dHo4DfjNFiHaSUnDQ6s8ik1I + ye85rr2uWIZ / yPuvrRuTw05 + gFe1z01v / kWzVLfKXmsxZOrPIpNSPsnv + 08mckR2nsNT8ljOr9ggcDQovf3FgybIw3w2OraFKhnrOebzsGV0Wt5gwesKGbg8s6wam1d8qGLxLyUno74iLNRa / Kaz6LjoKWmMmpol1pEDQnM / UNCKc3Sdp34yenHj1Fr8prPouOgVBMTlBqWLtrDTl1R6apVi + ZUOnw / cKexsmJiCsHEAHK7oy6vj / 44R1QGg6H8mF5tPIfZtvp8e2i + l0eC4yveATbjJ7LcZ4 + qAEbveQC8x / eix3PBjmhYeKANzeJqNEflTuvIHQIQWuKeT9Vw0nFrR3Dt + MBQrsMV / lWs1H3w4NrgQdQEtR / 7L2wxNR2tMHM64EHUBLUf + Y6 + VuMP83CbwQurJQ6l0LGSKAunFwvRbJM5CYrr8qIitU / JTokRlYdPl0yDuNqjqyQe9nS8WymTachpKe1ZmP6jIOu6rxeC0F6qI0ZH / KagceLZRBiz / R7Bf3sT15jsfqBfSiXwSROhvsa2PsLRoFz8i4eMTiLfbu0xP + Mrs65coYec + gMJK7hzpQnc5I / UJjSmjL9slAVpJc74hRGJ3dwlV / zmnmZeyeQzX3qsF3rMnopsHrYLniK +徐/ Cwl7G55Su1pGekbno2「;

$ desc_res = $ obj-> DES3DECRYPT($キー、$の暗号)。

エコー'<前>'; 
$ desc_resをエコー。


?>
  

  

おすすめ

転載: www.cnblogs.com/IT-Crowd/p/11265796.html