国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python有證書的加密解密實現方法

2020-02-23 06:11:16
字體:
來源:轉載
供稿:網友

本文實例講述了python有證書的加密解密實現方法。分享給大家供大家參考。具體實現方法如下:

最近在做python的加解密工作,同時加完密的串能在php上能解出來,網上也找了一些靠譜的資料,剛好也有時間我就總結了一下python在加密與解密這塊的代碼,今后可能還能用的上。相對于php而言python這塊加解密組件較多的,分別是:

python-crypto - 這個組件是基本組件,使用的函式相對比較復雜。
ezPyCrypto - 相對簡單,但他作出來的公私鑰無法與其他程序相兼容     SSLCrypto - 與 ezPyCrypto 是相同一個作者開發(fā),效率上要比ezPyCrypto 好。但一樣不能與其它程序相兼容。
pyopenssl - 似乎是用在https 通訊上的,而我找不到加解密的用法。
M2Crypto - 終于讓我找到了,但它有一大缺點,它底層是用 SWIG 與 OpenSSL 交接的。
在Windows安裝SWIG 程序是非常難的。

我選擇使用的是M2Crypto,公鑰與私鑰證書生成有兩個方式,一種采用RSA生成,另一種是X509生成。我就把這兩種加解密代碼分享出來,供大家參考,但轉載或使用時請寫明出處。

一、 RSA標準方式生成的證書

1.加密解密、加密簽名、驗證加密簽名
代碼如下:#encoding: utf8
import os
import M2Crypto
#隨機數生成器(1024位隨機)
M2Crypto.Rand.rand_seed(os.urandom(1024))
#生成一個1024位公鑰與私密鑰證書
Geekso = M2Crypto.RSA.gen_key(1024, 65537)
Geekso.save_key('jb51.net-private.pem', None)
Geekso.save_pub_key('jb51.net-public.pem')
#使用公鑰證書加密開始
WriteRSA = M2Crypto.RSA.load_pub_key('jb51.net-public.pem')
CipherText = WriteRSA.public_encrypt("這是一個秘密消息,只能用私鑰進行解密",M2Crypto.RSA.pkcs1_oaep_padding)
print "加密的串是:"
print CipherText.encode('base64')
#對加密串進行簽名
MsgDigest = M2Crypto.EVP.MessageDigest('sha1')
MsgDigest.update(CipherText)
#提示,這里也可以使用私鑰簽名
#WriteRSA = M2Crypto.RSA.load_key ('jb51.net-private.pem')
#Signature = WriteRSA.sign_rsassa_pss(MsgDigest.digest())
Signature = Geekso.sign_rsassa_pss(MsgDigest.digest())
print "簽名的串是:"
print Signature.encode('base64')
#使用私鑰證書解密開始
ReadRSA = M2Crypto.RSA.load_key ('jb51.net-private.pem')
try:
    PlainText = ReadRSA.private_decrypt (CipherText, M2Crypto.RSA.pkcs1_oaep_padding)
except:
    print "解密錯誤"
    PlainText = ""
if PlainText :
   print "解密出來的串是:"
   print PlainText
   # 驗證加密串的簽名
   MsgDigest = M2Crypto.EVP.MessageDigest('sha1')
   MsgDigest.update(CipherText)
   #提示,如果是用私鑰簽名的那就用公鑰驗證

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 逊克县| 双鸭山市| 定南县| 米脂县| 阆中市| 靖西县| 兴仁县| 阜康市| 抚松县| 宣汉县| 德阳市| 重庆市| 南宫市| 新乐市| 前郭尔| 绿春县| 大庆市| 海晏县| 峨眉山市| 靖边县| 调兵山市| 称多县| 台东市| 华蓥市| 丹凤县| 浪卡子县| 海门市| 内乡县| 蕉岭县| 沾益县| 桐柏县| 儋州市| 年辖:市辖区| 常山县| 浙江省| 吴川市| 色达县| 郁南县| 隆德县| 英山县| 平果县|