php常用加密解密
来源:互联网 发布:网络驱动卸载了怎么办 编辑:程序博客网 时间:2024/06/07 06:05
最近对接数据的时候涉及到了一些接口数据加密相关的一共试了两种方法, aes和rsa。
采用的方式是双方约定两个key,一个用于参数时效性验证加|解密(采用的是md5,双方约定一个key,根),一个用户接口时效性的加|解密(rsa|aes),如果用aes的密钥双方约定好可以就行了,rsa自行约定公私钥 。
参数格式如下:
token=md5(api_account+time)&api_account=xxxxxx&time=12312415125125¶ms=rsa|aes(XXX),其中MD5所用秘钥为双方约定,如果使用AES则秘钥要需要双方约定。服务根据约定的密钥去验证接口的有效性和解密参数;接口提供方每次去验证参数中的时间是否已失效、md5加密后的字符串token是否与参数以及双方约定的密钥加密的结果一致,通过验证后再去解密参数,然后相应的返回
// RSA加密明文最大长度117字节,加密过程中需要分块进行 function splitDecrypt($encryptData){ $crypto = ''; $privateKey = "-----BEGIN RSA PRIVATE KEY----------END RSA PRIVATE KEY-----"; foreach (str_split(base64_decode($encryptData), 128) as $chunk) { openssl_private_decrypt($chunk, $decryptData, $privateKey); $crypto .= $decryptData; } return $crypto; }
/** * md5 指定秘钥进行加密 * @param $data * @return string */public static function md5Encrypt($data){ $key = self::MD5_KEY; $ret = mhash(MHASH_MD5, $data, $key); return bin2hex($ret);}
// 解密要求密文最大长度为128字节,解密的过程中需要分块进行 function splitEncrypt($originalData) { $publicKey = "-----BEGIN PUBLIC KEY----------END PUBLIC KEY-----"; $cryptResult = ''; foreach (str_split($originalData, 117) as $piece) { openssl_public_encrypt($piece, $encryptData, $publicKey); $cryptResult .= $encryptData; } return base64_encode($cryptResult); }
阅读全文
0 0
- php常用加密解密
- PHP常用加密解密函数
- php对字符串加密解密常用的几个内置函数
- 常用加密解密方法
- 常用加密解密算法
- 常用加密解密算法
- 常用加密解密方法
- 常用加密解密方法
- php加密解密
- php加密解密2
- PHP加密解密
- Php Mcrypt 加密解密
- PHP 加密解密函数
- php加密解密技术
- php--rc4加密解密
- PHP加密/解密
- PHP加密解密
- PHP加密解密
- python3之1011. A+B和C (15分)
- Windows下MySQL下载安装、配置与使用
- Android获取文件夹路径
- 评分卡模型中的IV和WOE详解
- js里面获取相同class的value
- php常用加密解密
- 多项黑科技全副武装,Bixby构建多元立体场景体验
- JSONObject和JSONArray的区别
- hadoop进阶2_2.x
- 用lua生成modbus协议中的ascii模式的1363格式(适合爱默生公司的ups或者空调之类的协议命令)
- 带你飞之Linux学习篇二:Linux通过主机名免密码建立互信
- 播放视频时有残影、水纹的原因
- AFNetworking 初始化model数据+自定义cell
- 跨域小结(为什么form表单提交没有跨域问题,但ajax提交有跨域问题)