Intereting Posts

PHP rsa получает открытый ключ из файла pem

Как я могу получить публикацию из файла pem, созданного на основе rsa 364. Установленная библиотека crypt (RSA.php) все еще становится ниже ошибки

Неустранимая ошибка: вызов неопределенного метода Crypt_RSA :: loadKey () в C: \ Program Files \ Apache Software Foundation \ Apache2.2 \ htdocs \ rsa.php

$file = "C:\key_file.pem"; $keypair = Crypt_RSA_KeyPair::fromPEMString(file_get_contents($file)); $public_key = $keypair->getPublicKey(); $rsa_pub_key = Crypt_RSA_Key::fromString($public_key->toString()); $rsa_obj = new Crypt_RSA; $verify_status = $rsa_obj->validateSign($text,$recieved_signed_sign, $rsa_pub_key) ? 'valid' : 'invalid'; 

получение ошибки как фатальная ошибка: вызов неопределенного метода PEAR_Error :: getPublicKey () в C: \ Program Files \ xxxx \ rsa.php

Пробовал то же самое openssl_verify. проверка выполняется rturning 0 Попытка проверить знак, полученный с base64_encode, с ключом 384 rsa.

 **$base64DecodedStr = base64_decode("A1a0o8JzF7q12Sr4gJvYjslhg5XVA2fWy28.JyohJ05uyiZGyBpqazqb"); $status = openssl_verify($msg,$base64DecodedStr,$pub_key);** 

Пожалуйста, помогите мне решить эту проблему. Большое спасибо.

Согласно документации Crypt_RSA, класс Crypt_RSA не имеет метода loadKey (). Вы передаете открытый ключ конструктору как часть ассоциативного массива параметров:

 $rsa_obj = new Crypt_RSA(array('public_key' => $publickey)); 

Моя рекомендация: не используйте Crypt_RSA PEAR, а скорее Crypt_RSA от phpseclib.

PERE Crypt_RSA не является совместимым с PKCS # 1, то есть подписи или ciphertexst, сгенерированные с ним, не будут взаимодействовать с другими языками, он не поддерживает закрытые секретные ключи и не поддерживается в течение многих лет.

Дополнительная информация о phpseclib:

http://phpseclib.sourceforge.net/