PHP android ios互相适配的AES数据加密优化算法

摘要: APP新项目客户登陆密码传送一直沒有用HTTPS,考虑到到客户的隐私保护临时先用AES对登陆密码数据加密,之后还可以用以手机上端与服务端数据加密互动。PHP的完全免费版phpAES新项目,...

APP新项目客户登陆密码传送一直沒有用HTTPS,考虑到到客户的隐私保护临时先用AES对登陆密码数据加密,之后还可以用以手机上端与服务端数据加密互动。

PHP的完全免费版phpAES新项目,手机上端编解码各种各样错误。

十分非常容易找了PHP ANDROID IOS,互相加解密一切正常的AES数据加密优化算法编码。

PHP的AES数据加密优化算法:
 

 ?php
class MCrypt {
 private $hex_iv =  # converted JAVA byte code in to HEX and placed it here 
 private $key = U1MjU1M0FDOUZ.Qz #Same as in JAVA
 function __construct() {
 $this- key = hash( sha256 , $this- key, true);
 //echo $this- key. br/ 
 function encrypt($str) { 
 $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, , MCRYPT_MODE_CBC, 
 mcrypt_generic_init($td, $this- key, $this- hexToStr($this- hex_iv));
 $block = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
 $pad = $block - (strlen($str) % $block);
 $str .= str_repeat(chr($pad), $pad);
 $encrypted = mcrypt_generic($td, $str);
 mcrypt_generic_deinit($td);
 mcrypt_module_close($td); 
 return base64_encode($encrypted);
 function decrypt($code) { 
 $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, , MCRYPT_MODE_CBC, 
 mcrypt_generic_init($td, $this- key, $this- hexToStr($this- hex_iv));
 $str = mdecrypt_generic($td, base64_decode($code));
 $block = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
 mcrypt_generic_deinit($td);
 mcrypt_module_close($td); 
 return $this- strippadding($str); 
 For PKCS7 padding
 private function addpadding($string, $blocksize = 16) {
 $len = strlen($string);
 $pad = $blocksize - ($len % $blocksize);
 $string .= str_repeat(chr($pad), $pad);
 return $string;
 private function strippadding($string) {
 $slast = ord(substr($string, -1));
 $slastc = chr($slast);
 $pcheck = substr($string, -$slast);
 if (preg_match( /$slastc{ . $slast . }/ , $string)) {
 $string = substr($string, 0, strlen($string) - $slast);
 return $string;
 } else {
 return false;
function hexToStr($hex)
 $string= 
 for ($i=0; $i strlen($hex)-1; $i+=2)
 $string .= chr(hexdec($hex[$i].$hex[$i+1]));
 return $string;
$encryption = new MCrypt();
echo $encryption- encrypt( 123456 ) . br/ 
echo $encryption- decrypt( tpyxISJ83dqEs3uw8bN/+w== 

 

java的AES数据加密优化算法:

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import android.util.Base64;
 * @author vipin.cb , vipin.cb br 
 * Sep 27, 2013, 5:18:34 PM br 
 * Package:- b com.veebow.util /b br 
 * Project:- b Veebow /b 
 * p 
public class AESCrypt {
 private final Cipher cipher;
 private final SecretKeySpec key;
 private AlgorithmParameterSpec spec;
 public static final String SEED_16_CHARACTER = U1MjU1M0FDOUZ.Qz 
 public AESCrypt() throws Exception {
 // hash password with SHA-256 and crop the output to 128-bit for key
 MessageDigest digest = MessageDigest.getInstance( SHA-256 
 digest.update(SEED_16_CHARACTER.getBytes( UTF-8 ));
 byte[] keyBytes = new byte[32];
 System.arraycopy(digest.digest(), 0, keyBytes, 0, keyBytes.length);
 cipher = Cipher.getInstance( AES/CBC/PKCS7Padding 
 key = new SecretKeySpec(keyBytes, AES 
 spec = getIV();
 public AlgorithmParameterSpec getIV() {
 byte[] iv = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
 IvParameterSpec ivParameterSpec;
 ivParameterSpec = new IvParameterSpec(iv);
 return ivParameterSpec;
 public String encrypt(String plainText) throws Exception {
 cipher.init(Cipher.ENCRYPT_MODE, key, spec);
 byte[] encrypted = cipher.doFinal(plainText.getBytes( UTF-8 ));
 String encryptedText = new String(Base64.encode(encrypted,
 Base64.DEFAULT), UTF-8 
 return encryptedText;
 public String decrypt(String cryptedText) throws Exception {
 cipher.init(Cipher.DECRYPT_MODE, key, spec);
 byte[] bytes = Base64.decode(cryptedText, Base64.DEFAULT);
 byte[] decrypted = cipher.doFinal(bytes);
 String decryptedText = new String(decrypted, UTF-8 
 return decryptedText;
}

 

 

IOS的AES数据加密优化算法:

Gurpartap/AESCrypt-ObjC

stackoverflow参照
questions/patible-aes-code-encrypt-decrypt-for-iphone-android-windows-xp

questions//aes-128-encryption-in-java-decryption-in-php



联系我们

全国服务热线:4000-399-000 公司邮箱:343111187@qq.com

  工作日 9:00-18:00

关注我们

官网公众号

官网公众号

Copyright?2020 广州凡科互联网科技股份有限公司 版权所有 粤ICP备10235580号 客服热线 18720358503

技术支持:免费修图软件