怎么将十六进制字符串的私钥转换成PEM格式的私钥

新手上路,请多包涵

提供给我的是16进制的私钥和Java实现的代码示例,要求我用PHP完成这个。实在是搞不懂,下面是Java的示例代码。如果用PHP实现的话,我目前的思路就是将给我的16进制的字符串转换成PEM格式的字符串,然后使用PHP的openssl_sign函数进行加密,但是尝试了很多方法,都没有方法成功转换。忘大神们解答

String src = "待加密的字符串";
Signature sigEng = Signature.getInstance("SHA1withRSA");
//bytes是将十六进制私钥字符串转化为字节数组之后的结果
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(bytes);

KeyFactory fac = KeyFactory.getInstance("RSA");

RSAPrivateKey privateKey = (RSAPrivateKey) fac.generatePrivate(keySpec);
RSAPublicKey publicKey = (RSAPublicKey)fac.generatePublic(keySpec);
//开始加密
sigEng.initSign(privateKey);
sigEng.update(src.getBytes("UTF-8"));
System.out.println(bytesToHexStr(sigEng.sign()));
阅读 4.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题