Я получил некоторую документацию от клиента, где указан ЧАСТНЫЙ КЛЮЧ RSA.
Я не могу найти способ зашифровать текст этим ключом, без необходимости вводить другую пароль?
Они включают «демонстрационный пример» в Java, для того, как это делается.
publicstaticStringsign(StringstringA, StringprivateKey, Stringinput_charset)
{
try {
PKCS8EncodedKeySpecpriPKCS8 =
newPKCS8EncodedKeySpec(Base64.decode(privateKey));
KeyFactorykeyf = KeyFactory.getInstance("RSA");
PrivateKeypriKey = keyf.generatePrivate(priPKCS8);
java.security.Signaturesignature =
java.security.Signature.getInstance("SHA1WithRSA");
signature.initSign(priKey);
signature.update(stringA.getBytes("UTF-8"));
byte[] signed = signature.sign();
returnBase64.encode(signed);
} catch (Exceptione) {
e.printStackTrace();
}
returnnull;
}
Когда я пытаюсь использовать PHP, он говорит, что ключ неверный. Итак, мой ответ: как я могу зашифровать текст ключом, который я получил из документации? Без пароля для «закрытого ключа»?
function encryptData($raw)
{
global $privateKey;
$privateKey = openssl_pkey_get_private($privateKey);
if (!$privateKey) {
throw new RuntimeException('Invalid private key or passphrase');
}
// Encrypt digest using the key
$encrypted = "";
openssl_private_encrypt($raw, $encrypted, $privateKey, OPENSSL_PKCS1_PADDING);
return $encrypted;
}
encryptData("Hello world!");
Мой личный ключ:
MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEA
AoGBAIpUpl1YsfN5V2iSLDdih1ymU4W0zC05oUYftsT4CE
FFEgPJdqxTqFoaza01+OLbAzewzRvcTjmyFscahx6X3K4oh
1aJ14jrTXCxqc3E4sfPI/QBxioLVusm+jznnBP5h0iiX1gtdkG
Kj1VmrkkX7brMUDH7y6jqod/TqnHMPVAFAgMBAAECg
YAfnmG4jIGAaYf1OxQoRLk0EECfG0hgPgADC1S3iQo6AR
OxEeeyVBzzG5VPtjqBgBYoMJ1xdNXckjxqnkGsWIH0Zrjal
N7NApDNiq76lINk/xXCRZWLjy7BSa/z6rc8mtYbYf57yxbm
VwznO8f2VlWkjQ8fJ8c5+xxqBlvm9hyoAQJBAMvrncsVSt13
a6IsPk4+2IGO73lgXgtBq3mImIZfK63QniAatrDxTe4i6R4l5
DEPUZ5ETObTqeRajjQ1e/boC4UCQQCtqMF3Kh04DNdF
AXgpf79pA81ymDmzwZIcBpD9LTJcNbSORGUq/aWmWSz
naPtRcF+zSAvKjgLzB3QHsdwO1BqBAkAi2vkzt0X+qOTq6
WkU8sULECV6tsdbeHQY5/I6NZYsdLxtd84S2aop6r1Dk
D86cNnrAEBC3jkoVsdvvuYJAXXXkBMlDJcPjIMWX1EbNV
0V2UtBgQ/GGm5nw6zVSHyw0+F4hjw87A5OQknRgPLOD
w7OXa6NHcep2kdipsdVzbwgqX4rilqqFTeJhy/tDiFJKhi4xOm
DQRIdVhhhgZs81