java 与 php 做rsa 加密数据通讯问题处理
php需要解决的核心问题:
1,密钥的解密处理 包括私钥跟公钥,java对于密钥的加密有2种,pkcs8 跟 x509
pkcs8 算法需要额外的库支持 phpseclib 该库依赖 MATH_BIGINTEGER 如果下载1.几版本可手动调整支持php7
2,签名的加密算法 php 默认应该是rsa模式 如果使用需要java配合。
详情见:https://schneimi.wordpress.com/2008/11/25/rsa-encryption-between-java-and-php/
还有一种签名算法为 OPENSSL_ALGO_MD5 一般的java设置都会支持
1,密钥的解密处理 包括私钥跟公钥,java对于密钥的加密有2种,pkcs8 跟 x509
pkcs8 算法需要额外的库支持 phpseclib 该库依赖 MATH_BIGINTEGER 如果下载1.几版本可手动调整支持php7
2,签名的加密算法 php 默认应该是rsa模式 如果使用需要java配合。
详情见:https://schneimi.wordpress.com/2008/11/25/rsa-encryption-between-java-and-php/
还有一种签名算法为 OPENSSL_ALGO_MD5 一般的java设置都会支持
3,数据加密算法,对于php 应该是 ,OPENSSL_PKCS1_PADDING
//证书pkcs8格式转换 function pkcs8ToPem($der_data) { //进行证书pkcs8 密钥解密处理 $rsa = new phpseclibCryptRSA(); $rsa->loadKey($private_content); return $rsa->getPrivateKey(); } //证书x509格式转换 function x509ToPem($der_data) { //$der_data 为base64 编码格式 $pem = chunk_split($der_data, 64, " "); $pem = "-----BEGIN PUBLIC KEY----- ".$pem."-----END PUBLIC KEY----- "; return $pem; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: YII框架第三方微博登录
- 下一篇: OAuth 2.0 构建微服务身份认证(二):java实现过程