Как расшифровать RSA с помощью Python?

Как расшифровать текст Зашифрованный так:
encode.php:
<?php
$pub = <<<SOMEDATA777
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3bv1e8E+bR53cvDwwwAF
3Yhc+g47OvFpmmb0oi/H5xV/u1usUCBqgC0Apz1CcAAQJM/0TrKF7alfDeAvUD2E
0E8SU7UxBHc3Bsn75Gs0wt3kVzqLTBfBRBW/qVdcNINkAnQUrOJ784OX8bMbH1Dt
MbvZAoBHFOaEv5G/fUWICBARsEslhSvFxCXyY4tBwDgPTP1QaF/pzlHhl2L8EVUN
NjworEoG897uaDwyJbbShfMlrgZGzEnNFr6WYlCsHAlKoWKYq2Duag4ojPV7bh9s
VyXCketlZHkYgLb0suw5jZZYuZ42UhPtQYNKpDmWpnrECkUD6T/1UXTRHvubrKnv
ywIDAQAB
-----END PUBLIC KEY-----
SOMEDATA777;
$data = "PHP is my secret love.";
$pk  = openssl_get_publickey($pub);
openssl_public_encrypt($data, $encrypted, $pk);
echo chunk_split(base64_encode($encrypted));
?>

decode.php:
<?php
$key = <<<SOMEDATA777
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEA3bv1e8E+bR53cvDwwwAF3Yhc+g47OvFpmmb0oi/H5xV/u1us
UCBqgC0Apz1CcAAQJM/0TrKF7alfDeAvUD2E0E8SU7UxBHc3Bsn75Gs0wt3kVzqL
TBfBRBW/qVdcNINkAnQUrOJ784OX8bMbH1DtMbvZAoBHFOaEv5G/fUWICBARsEsl
hSvFxCXyY4tBwDgPTP1QaF/pzlHhl2L8EVUNNjworEoG897uaDwyJbbShfMlrgZG
zEnNFr6WYlCsHAlKoWKYq2Duag4ojPV7bh9sVyXCketlZHkYgLb0suw5jZZYuZ42
UhPtQYNKpDmWpnrECkUD6T/1UXTRHvubrKnvywIDAQABAoIBADcHs/gf0KdyPUD4
jThIJCyD8Fda+tY5HfVlAefSpfEzA71zFgPY17Wx9YyMBpYXXepU9hQl+FkwhNfD
wNpQOkscpLbDrEOodq6nqG1bMf/+4/HGJNYguyVzpFqZxNd/mG2Hc64ok4yvJyGk
SuHtysBiF4yoW3vTbjTBLl4fyI//PquJk3pWE6n30ooVs/ZDIldDYxLTzaRhjGIl
lSjq2K2ItlsOav912euGebjQXWXAd3m0F9ngrFLjljmCrE8qgDeuFmxd7x5Czvua
AYgTJzMSbfBCSti1xOrmQGUX+BEhXVhlmhn5slaPh6h1L71uoeipAZS21QbXXAI3
fT5nsdkCgYEA8yxRWMfZhZzRrCv/HAwzyZUfkfBRXqy+aacO6lUnE15qPb4aE8Em
gYFCB20hsJczKakxQUiClRCn6yOfgLnJG/vq2vR5aydV7OEXBe6bT3j4RbGuCaZZ
/RzuehoZqSpexclDFZvk54QgmfNZjoZxf/IAt+ZN6tUL8z51j4+JS78CgYEA6W4k
N4xE0zCLds5DakeqbD3oEE9fY5NKJIp61JR4HVBASJU/e91SPWEbrAfcMTayTav5
hyz7vN7aEh2UAeG5945PdmiATWnROSmQN3vin4AsLmeUFJHGL4qT77k5Wt9Ql43k
QbEyjw+wQAdxnghLoiHyozYzsZhvbq942bvgDvUCgYBo1t+PdkIq38xp/WH0VrJx
I3DD+6cpOTKy3EqK7wF00Uzep7oYcDrItNCh4QQYXWe6e2535eoemFq8/tPCrNau
0PKVSbebYg8inHzPmuqs3cu0SIFvOaAshy+txtjvXQwVG8tnYpnS0t03Ynpm/0Gp
1s1Ge+115DpNucz3gvu/gwKBgDOM0FC4GGbvPI1jJb4tz3QSA9K+RJmP6HrDXjbe
BtyqYVfmJdvr14KYlGzcW4M+ygefJ/7zLzDZoh0IDSyRNel2sxO6JkNyT/Mou6GV
KUoCGz+wPiKAwtyy5NK2+/SWhozBmBvtzvWLCGhLfIri2BkZGCV1Ddt1h35RIAYt
mGCVAoGAK+IfA2Nkqi09xsU1KPPJTL4P54OsEbE5fNm+hxL1jpfU3cz7VV9X+yvV
fseNn1qkQTvC4JERIypOnkti3xpsWaedP5fHHqveSDeR6ObRRTFcM990EogN9IzE
WOUCpOARkqvdlQO5UwP4fVgJmKERicoHjsuWOf4byZad7FjJYE4=
-----END RSA PRIVATE KEY-----
SOMEDATA777;
$data = "qwcxZgHZ1hccWeZG6UHV3s7qLTDBtz+tUiv/qOB9gxtm9JQRXnUb+MWXxU4oU+ek0y5EMR+QTh7w u0WivMjNxmmmvpWkBkcnigsqrosqnksvV5OSmcyu8/dMDdRpT87fsmTjrBlwrXBy+r9fZqQ2eILH X0dEsUNexQy2z24FCVJRpNTwH9bXpgCJkuQKOOA5jze2dUIA+78es1f09B3dQQEEWF5jNv2NlkKa L3teqYe1StJ0V8ButejzDoXzTxjgTLA1J7rJgbiJ7zooPRZafZakZwGDO2c2bB9fGDYd90TD4Y0G mBybEs/nThjGry/F+dtxu1df0O6HgPTDnnol6Q==";
$pk  = openssl_get_privatekey($key);
openssl_private_decrypt(base64_decode($data), $out, $pk);
echo $out;
?>


Как такой текст расшифровать уже на Python 3?
Спасибо!
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Как такой текст расшифровать уже на Python 3


К примеру вот так:

import rsa
import base64

PRIVKEY = '''<<<SOMEDATA777
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEA3bv1e8E+bR53cvDwwwAF3Yhc+g47OvFpmmb0oi/H5xV/u1us
UCBqgC0Apz1CcAAQJM/0TrKF7alfDeAvUD2E0E8SU7UxBHc3Bsn75Gs0wt3kVzqL
TBfBRBW/qVdcNINkAnQUrOJ784OX8bMbH1DtMbvZAoBHFOaEv5G/fUWICBARsEsl
hSvFxCXyY4tBwDgPTP1QaF/pzlHhl2L8EVUNNjworEoG897uaDwyJbbShfMlrgZG
zEnNFr6WYlCsHAlKoWKYq2Duag4ojPV7bh9sVyXCketlZHkYgLb0suw5jZZYuZ42
UhPtQYNKpDmWpnrECkUD6T/1UXTRHvubrKnvywIDAQABAoIBADcHs/gf0KdyPUD4
jThIJCyD8Fda+tY5HfVlAefSpfEzA71zFgPY17Wx9YyMBpYXXepU9hQl+FkwhNfD
wNpQOkscpLbDrEOodq6nqG1bMf/+4/HGJNYguyVzpFqZxNd/mG2Hc64ok4yvJyGk
SuHtysBiF4yoW3vTbjTBLl4fyI//PquJk3pWE6n30ooVs/ZDIldDYxLTzaRhjGIl
lSjq2K2ItlsOav912euGebjQXWXAd3m0F9ngrFLjljmCrE8qgDeuFmxd7x5Czvua
AYgTJzMSbfBCSti1xOrmQGUX+BEhXVhlmhn5slaPh6h1L71uoeipAZS21QbXXAI3
fT5nsdkCgYEA8yxRWMfZhZzRrCv/HAwzyZUfkfBRXqy+aacO6lUnE15qPb4aE8Em
gYFCB20hsJczKakxQUiClRCn6yOfgLnJG/vq2vR5aydV7OEXBe6bT3j4RbGuCaZZ
/RzuehoZqSpexclDFZvk54QgmfNZjoZxf/IAt+ZN6tUL8z51j4+JS78CgYEA6W4k
N4xE0zCLds5DakeqbD3oEE9fY5NKJIp61JR4HVBASJU/e91SPWEbrAfcMTayTav5
hyz7vN7aEh2UAeG5945PdmiATWnROSmQN3vin4AsLmeUFJHGL4qT77k5Wt9Ql43k
QbEyjw+wQAdxnghLoiHyozYzsZhvbq942bvgDvUCgYBo1t+PdkIq38xp/WH0VrJx
I3DD+6cpOTKy3EqK7wF00Uzep7oYcDrItNCh4QQYXWe6e2535eoemFq8/tPCrNau
0PKVSbebYg8inHzPmuqs3cu0SIFvOaAshy+txtjvXQwVG8tnYpnS0t03Ynpm/0Gp
1s1Ge+115DpNucz3gvu/gwKBgDOM0FC4GGbvPI1jJb4tz3QSA9K+RJmP6HrDXjbe
BtyqYVfmJdvr14KYlGzcW4M+ygefJ/7zLzDZoh0IDSyRNel2sxO6JkNyT/Mou6GV
KUoCGz+wPiKAwtyy5NK2+/SWhozBmBvtzvWLCGhLfIri2BkZGCV1Ddt1h35RIAYt
mGCVAoGAK+IfA2Nkqi09xsU1KPPJTL4P54OsEbE5fNm+hxL1jpfU3cz7VV9X+yvV
fseNn1qkQTvC4JERIypOnkti3xpsWaedP5fHHqveSDeR6ObRRTFcM990EogN9IzE
WOUCpOARkqvdlQO5UwP4fVgJmKERicoHjsuWOf4byZad7FjJYE4=
-----END RSA PRIVATE KEY-----
SOMEDATA777'''

privkey = rsa.PrivateKey.load_pkcs1(
    PRIVKEY,
)

crypted_text = "qwcxZgHZ1hccWeZG6UHV3s7qLTDBtz+tUiv/qOB9gxtm9JQRXnUb+MWXxU4oU+ek0y5EMR+QTh7w u0WivMjNxmmmvpWkBkcnigsqrosqnksvV5OSmcyu8/dMDdRpT87fsmTjrBlwrXBy+r9fZqQ2eILH X0dEsUNexQy2z24FCVJRpNTwH9bXpgCJkuQKOOA5jze2dUIA+78es1f09B3dQQEEWF5jNv2NlkKa L3teqYe1StJ0V8ButejzDoXzTxjgTLA1J7rJgbiJ7zooPRZafZakZwGDO2c2bB9fGDYd90TD4Y0G mBybEs/nThjGry/F+dtxu1df0O6HgPTDnnol6Q=="
crypted_text = base64.b64decode(crypted_text.encode())

message = rsa.decrypt(crypted_text, privkey)
print('DECRYPTED> ', message.decode())


DECRYPTED> PHP is my secret love.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tumbler
@tumbler Куратор тега Python
бекенд-разработчик на python
С помощью библиотеки cryptography.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы