Skip to content

Instantly share code, notes, and snippets.

@shishirsharma
Created November 13, 2018 12:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shishirsharma/bc8fb66ad4d19ee638d8f162cb8ec9e4 to your computer and use it in GitHub Desktop.
Save shishirsharma/bc8fb66ad4d19ee638d8f162cb8ec9e4 to your computer and use it in GitHub Desktop.
pycrypto RSA example
# https://www.dlitz.net/software/pycrypto/api/current/Crypto.Cipher.PKCS1_v1_5-module.html
from Crypto import Random
from Crypto.Cipher import PKCS1_v1_5
from Crypto.Hash import SHA
from Crypto.PublicKey import RSA
from base64 import b64decode
raw_key = """-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQ
WMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNR
aY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQAB
AoGAfY9LpnuWK5Bs50UVep5c93SJdUi82u7yMx4iHFMc/Z2hfenfYEzu+57fI4fv
xTQ//5DbzRR/XKb8ulNv6+CHyPF31xk7YOBfkGI8qjLoq06V+FyBfDSwL8KbLyeH
m7KUZnLNQbk8yGLzB3iYKkRHlmUanQGaNMIJziWOkN+N9dECQQD0ONYRNZeuM8zd
8XJTSdcIX4a3gy3GGCJxOzv16XHxD03GW6UNLmfPwenKu+cdrQeaqEixrCejXdAF
z/7+BSMpAkEA8EaSOeP5Xr3ZrbiKzi6TGMwHMvC7HdJxaBJbVRfApFrE0/mPwmP5
rN7QwjrMY+0+AbXcm8mRQyQ1+IGEembsdwJBAN6az8Rv7QnD/YBvi52POIlRSSIM
V7SwWvSK4WSMnGb1ZBbhgdg57DXaspcwHsFV7hByQ5BvMtIduHcT14ECfcECQATe
aTgjFnqE/lQ22Rk0eGaYO80cc643BXVGafNfd9fcvwBMnk0iGX0XRsOozVt5Azil
psLBYuApa66NcVHJpCECQQDTjI2AQhFc1yRnCU/YgDnSpJVm1nASoRUnU8Jfm3Oz
uku7JUXcVpt08DFSceCEX9unCuMcT72rAQlLpdZir876
-----END RSA PRIVATE KEY-----"""
key = RSA.importKey(raw_key)
dsize = SHA.digest_size
sentinel = Random.new().read(15+dsize)
cipher = PKCS1_v1_5.new(key)
ciphertext = "areV5pLstcnb/CbmRZdLkamQXn7G9TFJk+ty29XuUHYiU0hvItIKf0xx0mhFKtXbEe/NDU0uS3+8ta7DXEAG0npXvOPGd+KRKqsyxB3ZzkM4U4n//W+hVwkEHxeoUD1Z2Xy1qLcw2eUA11MDMHaQjc06pbuartHpTyfdzIosFFU="
ciphertext = "bizM+pgzyhLP4xm+r50aV9K9I5CafhvTf8w7VY4+VU7e75HI0wsi0R0ZIyywFCv+O4D8x7kslqCcsRB1UUoGyUa7UJ7kVsM18nLqGrQRfIMdP4gO43Cr8HjY+wsGCcpbnPZr+e6SUt0p6ugApg6qzwe4Guy3LE8Pa+I35ykDxMA="
message = cipher.decrypt(b64decode(ciphertext), sentinel)
print(message)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment