首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RSA加密: Java代码到PHP代码

RSA加密: Java代码到PHP代码
EN

Stack Overflow用户
提问于 2018-04-17 07:56:29
回答 1查看 419关注 0票数 0

我试图在Java和PHP中实现RSA加密,但我似乎无法让PHP输出与Java相同的加密结果。

Java代码

代码语言:javascript
复制
public static String sign(byte[] data,String privateKey)throws Exception{
    byte[] keyBytes = Base64.decodeBase64(privateKey);
    PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(keyBytes);

    //KEY_ALGORTHM="RSA";
    KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORTHM);
    PrivateKey privateKey2 = keyFactory.generatePrivate(pkcs8EncodedKeySpec);

    //SIGNATURE_ALGORITHM="SHA1WithRSA"
    Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM);
    signature.initSign(privateKey2);
    signature.update(data);
    return Base64.encodeBase64String(signature.sign());
}

PHP代码

代码语言:javascript
复制
public function sign( string $data,string $privateKey){
      openssl_private_encrypt($data,$encrypted,$privateKey);
      return base64_encode($encrypted);
}

有人能帮我把它翻译成PHP代码吗?

如果有任何帮助,我们将不胜感激

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-17 08:26:02

我已经解决了这个问题。

在Java代码中,SIGNATURE_ALGORITHM是'SHA1WithRSA‘

所以,在PHP代码中

代码语言:javascript
复制
public function sign( string $data,string $privateKey){
  openssl_sign($data,$sign,$privateKeyString,OPENSSL_ALGO_SHA1);
  return base64_encode($encrypted);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49872698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档