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