PHP實現的AES雙向加密解密功能示例【128位】
2019-09-09 11:06eddieHOO PHP教程
這篇文章主要介紹了PHP實現的AES雙向加密解密功能,結合實例形式分析了基于AES算法的加密解密類定義與使用技巧,需要的朋友可以參考下
本文實例講述了PHP實現的AES雙向加密解密功能。分享給大家供大家參考,具體如下:
14 | public static function encrypt( $input , $key ) { |
15 | $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); |
16 | $input = Security::pkcs5_pad( $input , $size ); |
17 | $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '' , MCRYPT_MODE_ECB, '' ); |
18 | $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size( $td ), MCRYPT_RAND); |
19 | mcrypt_generic_init( $td , $key , $iv ); |
20 | $data = mcrypt_generic( $td , $input ); |
21 | mcrypt_generic_deinit( $td ); |
22 | mcrypt_module_close( $td ); |
23 | $data = base64_encode ( $data ); |
26 | private static function pkcs5_pad ( $text , $blocksize ) { |
27 | $pad = $blocksize - ( strlen ( $text ) % $blocksize ); |
28 | return $text . str_repeat ( chr ( $pad ), $pad ); |
30 | public static function decrypt( $sStr , $sKey ) { |
31 | $decrypted = mcrypt_decrypt( |
37 | $dec_s = strlen ( $decrypted ); |
38 | $padding = ord( $decrypted [ $dec_s -1]); |
39 | $decrypted = substr ( $decrypted , 0, - $padding ); |
44 | $str = "www.jfrwli.cn" ; |
46 | echo "原始字符串:" . $str . "<br/>" ; |
47 | $pwdstr = Security::encrypt( $str , $key ); |
48 | echo "加密后:" . $pwdstr . "<br/>" ; |
49 | $destr = Security::decrypt( $pwdstr , $key ); |
運行結果:
原始字符串:www.jfrwli.cn
加密后:O0vbyikeZRVnXueCodfSFw==
解密結果:www.jfrwli.cn
希望本文所述對大家PHP程序設計有所幫助。