RSA 加密:Java 代码到 PHP 代码
RSA Encryption: Java code to PHP code
我正在尝试在 Java 和 PHP 中实施 RSA 加密,但我似乎无法 PHP 输出与 [=25] 相同的加密结果=].
Java代码
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代码
public function sign( string $data,string $privateKey){
openssl_private_encrypt($data,$encrypted,$privateKey);
return base64_encode($encrypted);
}
有人可以帮我把它翻译成 PHP 代码吗?
任何帮助将不胜感激o.O
我已经解决了问题
在Java代码中,SIGNATURE_ALGORITHM是'SHA1WithRSA'
所以,在PHP代码
public function sign( string $data,string $privateKey){
openssl_sign($data,$sign,$privateKeyString,OPENSSL_ALGO_SHA1);
return base64_encode($encrypted);
}
我正在尝试在 Java 和 PHP 中实施 RSA 加密,但我似乎无法 PHP 输出与 [=25] 相同的加密结果=].
Java代码
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代码
public function sign( string $data,string $privateKey){
openssl_private_encrypt($data,$encrypted,$privateKey);
return base64_encode($encrypted);
}
有人可以帮我把它翻译成 PHP 代码吗?
任何帮助将不胜感激o.O
我已经解决了问题
在Java代码中,SIGNATURE_ALGORITHM是'SHA1WithRSA'
所以,在PHP代码
public function sign( string $data,string $privateKey){
openssl_sign($data,$sign,$privateKeyString,OPENSSL_ALGO_SHA1);
return base64_encode($encrypted);
}