Python 和 Django 如何使用证书进行加密

标签 python ssl openssl base64 pkcs#12

这是我的问题:

我想用证书加密数据......在我使用这些命令之前

openssl rsautl -encrypt -in inputfile -out inputfile.enc -inkey SanitelCF.cer -certin -pkcs

openssl base64 -base64 -e -in inputfile.enc -out inputfile.enc.b64

而且有效!但我想用 Python(Django) 来做这个

谁能告诉我如何做到这一点?

谢谢!

ps:这是我用的证书(SanitelCF.cer)

-----BEGIN CERTIFICATE-----
MIIDxjCCAq6gAwIBAgIDBDYUMA0GCSqGSIb3DQEBBQUAMG0xCzAJBgNVBAYTAklU
MR4wHAYDVQQKExVBZ2VuemlhIGRlbGxlIEVudHJhdGUxGzAZBgNVBAsTElNlcnZp
emkgVGVsZW1hdGljaTEhMB8GA1UEAxMYQ0EgQWdlbnppYSBkZWxsZSBFbnRyYXRl
MB4XDTA0MDkzMDA3NDkyN1oXDTA3MDkzMDIzNTkwMFowXjELMAkGA1UEBhMCSVQx
HjAcBgNVBAoTFUFnZW56aWEgZGVsbGUgRW50cmF0ZTEbMBkGA1UECxMSU2Vydml6
aSBUZWxlbWF0aWNpMRIwEAYDVQQDEwlTYW5pdGVsQ0YwgZ8wDQYJKoZIhvcNAQEB
BQADgY0AMIGJAoGBANQfl8dJ65QsUGAIRviObyQPA2AYBpxgVjTimrn+B9C9YUSz
6bbZv83ZX5dMYb368G6zsJhvZvoqVZQGofz5psc9HzXNAtZ9BqaZfFQ1JJmdenar
RSsTdPWXuJrkktAMQ10hEo1By2fG2oy1f934idprxOvcoxsO6tqSF8W9MtHvAgMB
AAGjggEAMIH9MB8GA1UdIwQYMBaAFK3XFXNahghrjlp8dsPeGaVrG7ONMA4GA1Ud
DwEB/wQEAwIEMDAdBgNVHQ4EFgQUk40paPskEoq8te6R8PK19/Bb02AwgaoGA1Ud
HwSBojCBnzCBnKCBmaCBloaBk2xkYXA6Ly9jYWRzLmVudHJhdGUuZmluYW56ZS5p
dC9jbj1DQSUyMEFnZW56aWElMjBkZWxsZSUyMEVudHJhdGUsb3U9U2Vydml6aSUy
MFRlbGVtYXRpY2ksbz1BZ2VuemlhJTIwZGVsbGUlMjBFbnRyYXRlLGM9aXQ/Y2Vy
dGlmaWNhdGVyZXZvY2F0aW9ubGlzdDANBgkqhkiG9w0BAQUFAAOCAQEAQkhcWTWr
0okM3DRlMaj+u0ojKuS5Co3jItFHlKe4wUKD3eEHMJtvDn5IPmAfoUBNyAyvK9cb
jziHMtwsRuTKwrNoFrU1Wxr3DjuPRyY7Eaaf2sLlm2dHFc7Rcog2qfl7G50OA+9y
3lu0IkqL23Wyeir6yqD3R4hOYfN9U2+l0WfSqwj3GGH/cJMudjer2zW5wXBd2jG/
1kwuZ39oNYH8WX0yeFiA20Bmm+mEU5UGhaQJgg9eQpznQ+EKCXMnOQzXG/rX8MTk
iu4FvYKV2zlNZDeA+pFXoGeqaEwSCXF5kBFQTOjw8F5vc6zRDlc4vD+38Rceg1nV
X+6REYbKWLiJbQ==
-----END CERTIFICATE-----

最佳答案

first 
i can get the public key by you cert files
the public key is save t.pub
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUH5fHSeuULFBgCEb4jm8kDwNg
GAacYFY04pq5/gfQvWFEs+m22b/N2V+XTGG9+vBus7CYb2b6KlWUBqH8+abHPR81
zQLWfQammXxUNSSZnXp2q0UrE3T1l7ia5JLQDENdIRKNQctnxtqMtX/d+Inaa8Tr
3KMbDurakhfFvTLR7wIDAQAB
-----END PUBLIC KEY-----

next;
run the command: sudo apt-get install python-M2Crypto

the end python code is:

from M2Crypto import RSA,BIO
pub_bio = BIO.MemoryBuffer()
tt=file("t.pub").read()
pub_bio.write(tt)
pub_key = RSA.load_pub_key_bio(pub_bio)
message = 'hello word' 
encrypted = pub_key.public_encrypt(message, RSA.pkcs1_padding)
print encrypted

关于Python 和 Django 如何使用证书进行加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26437533/

相关文章:

angular - 如何部署支持 ssl 的 Angular 应用程序

ssl - 从 GeoTrust 的两个证书生成 X.509 或 PEM 和私钥(RSA、PEM)

c - AES 加密 - 使用 OpenSSL 生成 key

python - 谷歌应用引擎中的内存缓存

c# - 如何使用GSSAPI认证机制访问MongoDB?

ssl - SSL 证书续订时的私钥更改

ruby-on-rails - Puma::MiniSSL::SSLError: OpenSSL error: error:1417A0C1:SSL routines:tls_post_process_client_hello:no shared cipher rails

python - Pandas dataframe.hist() 更改子图上的标题大小?

python - python 3中字典值的总和

python - 迭代多个文件并替换一行 - 为什么它不起作用?