<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        M2CryptoRSA加密、解密的實例介紹

        來源:懂視網 責編:小采 時間:2020-11-27 14:14:01
        文檔

        M2CryptoRSA加密、解密的實例介紹

        M2CryptoRSA加密、解密的實例介紹:M2Crypto 模塊快速安裝:# 環境centos7.0,提前裝好openssl(自行百度安裝),windows裝不上,暫不考慮了 [root@localhost ~]# pip install m2crypto # 驗證 >>> import M2Crypto >>>先做準備工作:#
        推薦度:
        導讀M2CryptoRSA加密、解密的實例介紹:M2Crypto 模塊快速安裝:# 環境centos7.0,提前裝好openssl(自行百度安裝),windows裝不上,暫不考慮了 [root@localhost ~]# pip install m2crypto # 驗證 >>> import M2Crypto >>>先做準備工作:#

        M2Crypto 模塊

        快速安裝:

        # 環境centos7.0,提前裝好openssl(自行百度安裝),windows裝不上,暫不考慮了
        
        [root@localhost ~]# pip install m2crypto
        
        # 驗證
        >>> import M2Crypto
        >>>

        先做準備工作:

        # centos系統上執行以下命令生成公鑰和私鑰
        
        [root@localhost ~]# openssl genrsa -out key.pem 1024
        [root@localhost ~]# openssl rsa -in key.pem -pubout -out pubkey.pem
        -----BEGIN RSA PRIVATE KEY-----MIICXAIBAAKBgQDhhyVxmY/TU/buuIfwlykV1d5Wg5PRu4Qu14LssRhZH9E9pVbX
        lGeP1Q8iJEErHt4Rk5tsFgavDf+L5QIM8zpmydJqbivUJCY/5b9zSwVSnDhFfGaj
        LY4Bj7Fq0yngRkxwUVaTmJ/u0FiKzy1mpnk0Xmj/pk7AburWj3YHVsYtuwIDAQAB
        AoGATYKhP9XDNKJa79jD/9Az8qk6bQlzuFV2LJMtECQddiQVSdaVbio3HZvgQ5+q
        NiO5ttjARfmb+nYZKf9fIQxHOX9GJeepzkvltZJO0LheS0+ZsX2ab62cv8ThUndf
        yp/thuqHHXt7ERYIHS7CzvzPUQ303OEA9a6WLDaTL/MpjEECQQD5G5cJrEAL1rGF
        0ELSRl0YRRRyywmGmc0Wlx0VHCyqG0/5GgmPJmB+8t7k7CtTgRhzStYSmwExzioh
        ylL3vpgTAkEA58SKxKezIGcuFbCB54yuWEtgauYNrBYauQLC7+Z9d6NjFUrcHO00
        1cVJ0cvIK++hvvOrCIUpq/86N8JFUyWYuQJACnH5t1IdrWFnODEvXBnPNYFQBjA1
        SguQ6e2ULppr1QYoKE3LMNFvImOUrQyqFGpJWCw/JbCSMEBwy9HsAK9hOQJAIV6v
        DDmJFPVGMWFEku4yfAv+SeXtugVEu7amEpyBHCSuM3af0ppkrRLG2ioZHBpYk4HJ
        8mQZ5+XLoBOcn6geIQJBAIcFTwZETKFs1h6dov3Bp6EPq8zZBABvy7fhCsQk9uX6
        6lI0pty9E3KUWGTw4AVp3EwGTc7OqLfiZQTgV65eBcA=
        -----END RSA PRIVATE KEY-----
        key.pem
        -----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhhyVxmY/TU/buuIfwlykV1d5W
        g5PRu4Qu14LssRhZH9E9pVbXlGeP1Q8iJEErHt4Rk5tsFgavDf+L5QIM8zpmydJq
        bivUJCY/5b9zSwVSnDhFfGajLY4Bj7Fq0yngRkxwUVaTmJ/u0FiKzy1mpnk0Xmj/pk7AburWj3YHVsYtuwIDAQAB-----END PUBLIC KEY-----
        pubkey.pem

        如何使用

        1、私鑰加密:

        import M2Crypto
        import json
        
        # 私鑰加密
        def pri_encrypt(msg, file_name):
         rsa_pri = M2Crypto.RSA.load_key(file_name) # 導入秘鑰 <M2Crypto.RSA.RSA instance at 0x24da8c0>
         ctxt_pri = rsa_pri.private_encrypt(msg, M2Crypto.RSA.pkcs1_padding) # 這里的方法選擇加密填充方式,所以在解密的時候 要對應。
         print(ctxt_pri,type(ctxt_pri))
         ctxt64_pri = ctxt_pri.encode('base64') # 密文是base64 只能寫base64 方便保存 encode成str
         print ('密文:%s'% ctxt64_pri,type(ctxt64_pri))
         return ctxt64_pri
        
        prikey_file = 'key.pem'
        data = {'name':'Jefrey'}
        message = json.dumps(data)
        
        pri_encrypt(message,prikey_file)
        
        # 打印
        # ("x8exc8 x98xeaxd5%&xe3xfaxa5xbbu];zZxf0xc1xddxf3x8fxaaxdcxfaxbcxacgxfdx0b3xbbax94Kx91taxda
        # xdfxd05xecVxb1xffxf0xc4x07xbfx1cxe0xfcx84&xfcpxf5\xabxd8xf2#xfcxce:]xbae]W47xf7xc9x9aXtxff
        # xe9xdax19x82xecDPxb2xcbxd3x8d@x81F'x9f}xfbx8bxb1o>x91xf0Gxc36x19Qxf8x7fxafxbexa2xeexf0Vx88
        # xbd[x1e3xafxf0xd3xebuxa9", <type 'str'>)
        # ('xe5xafx86xe6x96x87:jsggmOrVJSbj+qW7dV07elrwwd3zj6rc+rysZ/0LM7thlEuRdGHaIN/QNexWsf/wxAe/HOD8hCb8
        cPVcq9jyI/zO
        # Ol26ZV1XNDf3yZpYdP/p2hmC7ERQssvTjUCBRiefffuLsW8+kfBHwzYZUfh/r76i
        7vBWiL1bHjOv8NPrdak=
        ', <type 'str'>)

        2、公鑰解密(文件路徑):

        import M2Crypto
        import json
        
        # 私鑰加密
        def pri_encrypt(msg, file_name):
         rsa_pri = M2Crypto.RSA.load_key(file_name) # 導入秘鑰
         ctxt_pri = rsa_pri.private_encrypt(msg, M2Crypto.RSA.pkcs1_padding) # 進行加密 pkcs1_padding加密填充方式,解密的時候要對應。
         ctxt64_pri = ctxt_pri.encode('base64') # 密文是base64 只能寫base64 方便保存 encode成str
         print ('密文:%s'% ctxt64_pri,type(ctxt64_pri))
         return ctxt64_pri
        
        # 公鑰解密傳入文件路徑
        def pub_decrypt(msg, file_name):
         rsa_pub = M2Crypto.RSA.load_pub_key(file_name)
         ctxt_pri = msg.decode("base64") # 先將str轉成base64
         maxlength = 128 # 128位
         output = ''
         while ctxt_pri:
         input = ctxt_pri[:128]
         ctxt_pri = ctxt_pri[128:]
         out = rsa_pub.public_decrypt(input, M2Crypto.RSA.pkcs1_padding) #解密
         output = output + out
         print('明文:%s'% output,type(output))
         print('Json:%s'% json.loads(output),type(json.loads(output)))
        
        prikey_file = 'key.pem'
        pubkey_file = 'pubkey.pem'
        data = {'name':'Jefrey'}
        message = json.dumps(data)
        
        primsg = pri_encrypt(message,prikey_file)
        pub_decrypt(primsg,pubkey_file)
        
        # 打印
        # ('xe6x98x8exe6x96x87:{"name": "Jefrey"}', <type 'str'>)
        # ("Json:{u'name': u'Jefrey'}", <type 'dict'>)

        3、公鑰解密(字符串):

        import M2Crypto
        import json
        
        # 私鑰加密
        def pri_encrypt(msg, file_name):
         rsa_pri = M2Crypto.RSA.load_key(file_name) # 導入秘鑰
         ctxt_pri = rsa_pri.private_encrypt(msg, M2Crypto.RSA.pkcs1_padding) # 進行加密 pkcs1_padding加密填充方式,解密的時候要對應。
         ctxt64_pri = ctxt_pri.encode('base64') # 密文是base64 只能寫base64 方便保存 encode成str
         # print ('密文:%s'% ctxt64_pri,type(ctxt64_pri))
         return ctxt64_pri
        
        # 公鑰解密傳入字符串
        def pub_decrypt(msg, pub_key):
         bio = M2Crypto.BIO.MemoryBuffer(pub_key)
         rsa_pub = M2Crypto.RSA.load_pub_key_bio(bio)
         ctxt_pri = msg.decode("base64") # 先將str轉成base64
         output = rsa_pub.public_decrypt(ctxt_pri, M2Crypto.RSA.pkcs1_padding) #解密
         print('明文:%s'% output,type(output))
         print('Json:%s'% json.loads(output),type(json.loads(output)))
        
        prikey_file = 'key.pem'
        pubkey_file = 'pubkey.pem'
        data = {'name':'Jefrey'}
        message = json.dumps(data)
        
        primsg = pri_encrypt(message,prikey_file)
        with open(pubkey_file,'r+') as f:
         pub_key = f.read()
        pub_decrypt(primsg,pub_key)
        
        # 打印
        # ('xe6x98x8exe6x96x87:{"name": "Jefrey"}', <type 'str'>)
        # ("Json:{u'name': u'Jefrey'}", <type 'dict'>)

        小結:上面寫的是私鑰加密,公鑰解密;反過來也一樣,public_encrypt公鑰加密,private_decrypt私鑰解密;

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        M2CryptoRSA加密、解密的實例介紹

        M2CryptoRSA加密、解密的實例介紹:M2Crypto 模塊快速安裝:# 環境centos7.0,提前裝好openssl(自行百度安裝),windows裝不上,暫不考慮了 [root@localhost ~]# pip install m2crypto # 驗證 >>> import M2Crypto >>>先做準備工作:#
        推薦度:
        標簽: 加密 rsa 解密
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 九九久久国产精品免费热6| 亚洲av成人片在线观看| 亚洲免费无码在线| 午夜亚洲福利在线老司机| 亚洲午夜精品一区二区麻豆| 美女免费视频一区二区| 日韩高清免费在线观看| 亚洲成a人片在线不卡一二三区 | 国产亚洲精品AAAA片APP| 在线观看91精品国产不卡免费| 亚洲第一街区偷拍街拍| 免费成人黄色大片| a视频在线免费观看| 毛片a级毛片免费观看免下载 | 国产亚洲精品看片在线观看| 亚洲国产精品成人久久蜜臀 | 最近2019中文字幕免费看最新| 亚洲国产日韩在线成人蜜芽 | 亚洲综合无码无在线观看| 午夜精品在线免费观看| 亚洲精品无码久久久久AV麻豆| 一级一级毛片免费播放| 亚洲高清国产拍精品26U| 少妇人妻偷人精品免费视频| 亚洲婷婷综合色高清在线| 久久九九久精品国产免费直播| 日韩免费一区二区三区在线播放| 亚洲性猛交XXXX| 免费国产黄网站在线观看视频 | 久久亚洲国产成人精品性色| 美女一级毛片免费观看| 亚洲无码在线播放| 在线观看无码AV网站永久免费| 蜜臀亚洲AV无码精品国产午夜.| 国产aⅴ无码专区亚洲av麻豆 | 久久久久亚洲精品天堂久久久久久| 人人揉揉香蕉大免费不卡| 亚洲乱色伦图片区小说| 久久青青草原亚洲av无码| 日本片免费观看一区二区| 免费的黄网站男人的天堂|