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实现过程
