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

发布于 2022-09-11 20:09:54 字数 690 浏览 13 评论 0

提供给我的是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()));

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文