由于参与的app项目,一些敏感数据在android和ios交互中明文传输风险很大
所以使用对称加密算法aes,这种算法android、ios都有很好的支持,当然使用https也是个选择
参考:http://blog.csdn.net/huangwenkui1990/article/details/48292865
1、确认linux有没有安装mcrypt库
# yum list installed|grep mcrypt
libmcrypt.x86_64 2.5.8-4.el5.centos installed
libmcrypt-devel.x86_64 2.5.8-4.el5.centos installed
mcrypt.x86_64 2.6.8-1.el5 installed
以上显示已经安装过,若没有,则执行下面命令进行安装
# yum install libmcrypt libmcrypt-devel mcrypt mhash
执行后会显示即将安装的相关库,你可以根据你的linux限定x86_64或者i386,如yum install libmcrypt.x86_64(如果yum命令无法连接仓库,请检查你的/etc/yum.repos.d/里的文件正确性,以及你的/etc/host是不是可达里面的域名)
2、下载php下的mcrypt扩展或者直接下载php的完整安装包
http://cn.php.net/releases/ 网页下找到自己服务器的php版本,下载后tar解压(本人的是5.4.43),进入ext/mcrypt文件夹
# cd ext/mcrypt/
# phpize
# ./configure
# make && make install
3、php加载mcrypt扩展
extension_dir = "/usr/lib64/php/modules/"
extension=mcrypt.so
4、测试,查看phpinfo信息,如下图所示:
5、代码测试
<?php
class AMPCrypt {
private static function getKey(){
return md5('exampleKey');
}
public static function encrypt($value){
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
$key = substr(self::getKey(), 0, mcrypt_enc_get_key_size($td));
mcrypt_generic_init($td, $key, $iv);
$ret = base64_encode(mcrypt_generic($td, $value));
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $ret;
}
public static function dencrypt($value){
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
$key = substr(self::getKey(), 0, mcrypt_enc_get_key_size($td));
$key = substr(self::getKey(), 0, mcrypt_enc_get_key_size($td));
mcrypt_generic_init($td, $key, $iv);
$ret = trim(mdecrypt_generic($td, base64_decode($value))) ;
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $ret;
}
}
$mcrypt=new AMPCrypt();
echo $mcrypt->encrypt('test');//wFJisbvfzKs=
?>
所以使用对称加密算法aes,这种算法android、ios都有很好的支持,当然使用https也是个选择
参考:http://blog.csdn.net/huangwenkui1990/article/details/48292865
1、确认linux有没有安装mcrypt库
# yum list installed|grep mcrypt
libmcrypt.x86_64 2.5.8-4.el5.centos installed
libmcrypt-devel.x86_64 2.5.8-4.el5.centos installed
mcrypt.x86_64 2.6.8-1.el5 installed
以上显示已经安装过,若没有,则执行下面命令进行安装
# yum install libmcrypt libmcrypt-devel mcrypt mhash
执行后会显示即将安装的相关库,你可以根据你的linux限定x86_64或者i386,如yum install libmcrypt.x86_64(如果yum命令无法连接仓库,请检查你的/etc/yum.repos.d/里的文件正确性,以及你的/etc/host是不是可达里面的域名)
2、下载php下的mcrypt扩展或者直接下载php的完整安装包
http://cn.php.net/releases/ 网页下找到自己服务器的php版本,下载后tar解压(本人的是5.4.43),进入ext/mcrypt文件夹
# cd ext/mcrypt/
# phpize
# ./configure
# make && make install
3、php加载mcrypt扩展
extension_dir = "/usr/lib64/php/modules/"
extension=mcrypt.so
保存退出,重启服务
service php-fpm restart
service nginx restart
4、测试,查看phpinfo信息,如下图所示:
5、代码测试
<?php
class AMPCrypt {
private static function getKey(){
return md5('exampleKey');
}
public static function encrypt($value){
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
$key = substr(self::getKey(), 0, mcrypt_enc_get_key_size($td));
mcrypt_generic_init($td, $key, $iv);
$ret = base64_encode(mcrypt_generic($td, $value));
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $ret;
}
public static function dencrypt($value){
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
$key = substr(self::getKey(), 0, mcrypt_enc_get_key_size($td));
$key = substr(self::getKey(), 0, mcrypt_enc_get_key_size($td));
mcrypt_generic_init($td, $key, $iv);
$ret = trim(mdecrypt_generic($td, base64_decode($value))) ;
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $ret;
}
}
$mcrypt=new AMPCrypt();
echo $mcrypt->encrypt('test');//wFJisbvfzKs=
?>