您的位置:首页 > 编程语言 > PHP开发

安卓客户端、PHP服务端AES加密解密

2017-01-09 14:29 302 查看
1、安卓客户端AES解密

Stringkey =
"1234567820150401";
//安卓客户端代码AES加密
String  str =
"abc中国人";
str=Security.encrypt(str,
key);
Log.e(tag,"加密str:"+str);
 
//安卓客户端代码AES解密
str = Security.decrypt(str,
key);
Log.e(tag,"解密str:"+str);

 

 

package tzg.safty;

 

/**

 * 加密解密

 * @Title:Safty.java

 *@author TZG

 *@E-Mail TongZhengGang@126.com

 *

 String key = "tzglovethe998877";

 

 //安卓客户端代码AES+BASE64加密(先BASE64)

 String str = "ABC中国人民zzz他这个哥哥哥哥";

 str=Base64.encodeToString(data.getBytes(),Base64.DEFAULT);

 str=Security.encrypt(str, key);

 Log.e(tag,"str:"+str);

 

 //安卓客户端代码AES+BASE64解密(先AES)

 Stringstr="2dHN0fy1D+FwIVR+kVZxe+0y7mGWlnQz/o5UIfERw7qrsLdQlEf0eC8JNjSFdDjQL4L0LQBB2qXlO3jj28W2hg==";

 str= Security.decrypt(enToStr2, key);

 str= new String(Base64.decode(a.getBytes(), Base64.DEFAULT));

 Log.e(tag,"str:"+str);

 */

import javax.crypto.Cipher;

import javax.crypto.spec.SecretKeySpec;

 

import android.util.Base64;

import android.util.Log;

 

public class Security {

        publicstatic String encrypt(String input, String key) {

                byte[] crypted = null;

                try{

                         SecretKeySpecskey = new SecretKeySpec(key.getBytes(), "AES");

                         Ciphercipher = Cipher.getInstance("AES/ECB/PKCS5Padding");

                         cipher.init(Cipher.ENCRYPT_MODE,skey);

                         crypted= cipher.doFinal(input.getBytes());

                }catch (Exception e) {

                         System.out.println(e.toString());

                }

                returnnew String(Base64.encodeToString(crypted,Base64.DEFAULT));

        }

 

        publicstatic String decrypt(String input, String key) {

                byte[]output = null;

                try{

                         SecretKeySpecskey = new SecretKeySpec(key.getBytes(), "AES");

                         Ciphercipher = Cipher.getInstance("AES/ECB/PKCS5Padding");

                         cipher.init(Cipher.DECRYPT_MODE,skey);

                         output= cipher.doFinal(Base64.decode(input,Base64.DEFAULT));

                }catch (Exception e) {

                         System.out.println(e.toString());

                }

                returnnew String(output);

        }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、PHP服务端AES加密解密

<?php

/*public*/

header("content-Type: text/html;charset=Utf-8");

$key = "1234567820150401";

 

/*加密*/

$input = "abc中国人";

$input = iconv("gb2312","UTF-8",$input);

//$input = base64_encode($input);

$value = Security::encrypt($input, $key);

echo $value;

 

echo '<br/>';

 

/*解密*/

$input ="6jSxugvPgIZwHXchUj/QD2yO+C8nUczW88SXNyPKHz3wPK/AGJNVo3ljHOehBFYhSZiQ0ArrKOO1ro8Ww3b/Zl1tGsqLtsoVwThm2fCuqQUWSxrVTmr+A+N0mmn5Aaw1DmPHP1riisHsiInQoGgQqr3+EXkQcVQcnH8o4ubWSnEFWoY+0Lo3gjcpKS4tat4rJ/12EBTFjherP9zVYJASTm4R6pEqpjTVbvWABs62Q67iMBw21ueXTBLQETkvf1/O";

 

 

$value = Security::decrypt($input, $key );

//$value = base64_decode($value);

echo urldecode($value);

 

$json_string=urldecode($value);

$obj=json_decode($json_string);

echo '<br/>';

echo $obj->test;echo '<br/>';

echo $obj->test2;echo '<br/>';

echo $obj->test3;echo '<br/>';

echo $obj->test4;echo '<br/>';

?>

 

 

 

 

 

 

 

 

 

 

 

<?php

class Security {

        publicstatic function encrypt($input, $key) {

        $size= mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);

        $input= Security::pkcs5_pad($input, $size);

        $td= mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, '');

        $iv= mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);

        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;

        }

 

        privatestatic function pkcs5_pad ($text, $blocksize) {

                $pad= $blocksize - (strlen($text) % $blocksize);

                return$text . str_repeat(chr($pad), $pad);

        }

 

        publicstatic function decrypt($sStr, $sKey) {

                $decrypted=mcrypt_decrypt(

                MCRYPT_RIJNDAEL_128,

                $sKey,

                base64_decode($sStr),

                MCRYPT_MODE_ECB

        );

 

                $dec_s= strlen($decrypted);

                $padding= ord($decrypted[$dec_s-1]);

                $decrypted= substr($decrypted, 0, -$padding);

                return$decrypted;

        }     

}

?>

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: