【问题标题】:Python and Django how to crypt with a certificatePython 和 Django 如何使用证书加密
【发布时间】:2014-12-13 18:37:06
【问题描述】:

这是我的问题:

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

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-----

【问题讨论】:

    标签: python ssl openssl base64 pkcs#12


    【解决方案1】:
    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
    

    【讨论】:

    • 抱歉,还有一个问题...您如何获得公钥?
    • 它说“没有名为 M2Crypto 的模块”......也在我做了“sudo apt-get install python-M2Crypto”之后。如何安装?
    • 先获取公钥
    • 运行命令:openssl x509 -in SanitelCF.cer -outform PEM -pubkey
    • 没有名为 M2Crypto 的模块,您可以运行命令 yum install python-M2Crypto 或 sudo apt-get install python-M2Crypto 或 pip install M2Crypto
    猜你喜欢
    • 2016-10-20
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 2011-11-09
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    相关资源
    最近更新 更多