<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關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題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關(guān)鍵字專題關(guān)鍵字專題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
        當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

        Python基于DES算法加密解密實(shí)例

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:33:58
        文檔

        Python基于DES算法加密解密實(shí)例

        Python基于DES算法加密解密實(shí)例:本文實(shí)例講述了Python基于DES算法加密解密實(shí)現(xiàn)方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下: #coding=utf-8 from functools import partial import base64 class DES(object): DES加密算法 interface: input_ke
        推薦度:
        導(dǎo)讀Python基于DES算法加密解密實(shí)例:本文實(shí)例講述了Python基于DES算法加密解密實(shí)現(xiàn)方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下: #coding=utf-8 from functools import partial import base64 class DES(object): DES加密算法 interface: input_ke

        本文實(shí)例講述了Python基于DES算法加密解密實(shí)現(xiàn)方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:

        #coding=utf-8 
        from functools import partial 
        import base64 
        class DES(object): 
         """ 
         DES加密算法 
         interface: input_key(s, base=10), encode(s), decode(s) 
         """ 
         __ip = [ 
         58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4, 
         62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8, 
         57,49,41,33,25,17, 9,1,59,51,43,35,27,19,11,3, 
         61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7, 
         ] 
         __ip1 = [ 
         40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31, 
         38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29, 
         36,4,44,12,52,20,60,28,35,3,43,11,51,19,59,27, 
         34,2,42,10,50,18,58,26,33,1,41, 9,49,17,57,25, 
         ] 
         __e = [ 
         32, 1, 2, 3, 4, 5, 
         4 , 5, 6, 7, 8, 9, 
         8 , 9,10,11,12,13, 
         12,13,14,15,16,17, 
         16,17,18,19,20,21, 
         20,21,22,23,24,25, 
         24,25,26,27,28,29, 
         28,29,30,31,32, 1, 
         ] 
         __p = [ 
         16, 7,20,21,29,12,28,17, 
         1 ,15,23,26, 5,18,31,10, 
         2 ,8 ,24,14,32,27, 3, 9, 
         19,13,30, 6,22,11, 4,25, 
         ] 
         __s = [ 
         [ 
         0xe,0x4,0xd,0x1,0x2,0xf,0xb,0x8,0x3,0xa,0x6,0xc,0x5,0x9,0x0,0x7,
         0x0,0xf,0x7,0x4,0xe,0x2,0xd,0x1,0xa,0x6,0xc,0xb,0x9,0x5,0x3,0x8,
         0x4,0x1,0xe,0x8,0xd,0x6,0x2,0xb,0xf,0xc,0x9,0x7,0x3,0xa,0x5,0x0,
         0xf,0xc,0x8,0x2,0x4,0x9,0x1,0x7,0x5,0xb,0x3,0xe,0xa,0x0,0x6,0xd,
         ], 
         [ 
         0xf,0x1,0x8,0xe,0x6,0xb,0x3,0x4,0x9,0x7,0x2,0xd,0xc,0x0,0x5,0xa,
         0x3,0xd,0x4,0x7,0xf,0x2,0x8,0xe,0xc,0x0,0x1,0xa,0x6,0x9,0xb,0x5,
         0x0,0xe,0x7,0xb,0xa,0x4,0xd,0x1,0x5,0x8,0xc,0x6,0x9,0x3,0x2,0xf,
         0xd,0x8,0xa,0x1,0x3,0xf,0x4,0x2,0xb,0x6,0x7,0xc,0x0,0x5,0xe,0x9,
         ], 
         [ 
         0xa,0x0,0x9,0xe,0x6,0x3,0xf,0x5,0x1,0xd,0xc,0x7,0xb,0x4,0x2,0x8,
         0xd,0x7,0x0,0x9,0x3,0x4,0x6,0xa,0x2,0x8,0x5,0xe,0xc,0xb,0xf,0x1,
         0xd,0x6,0x4,0x9,0x8,0xf,0x3,0x0,0xb,0x1,0x2,0xc,0x5,0xa,0xe,0x7,
         0x1,0xa,0xd,0x0,0x6,0x9,0x8,0x7,0x4,0xf,0xe,0x3,0xb,0x5,0x2,0xc,
         ], 
         [ 
         0x7,0xd,0xe,0x3,0x0,0x6,0x9,0xa,0x1,0x2,0x8,0x5,0xb,0xc,0x4,0xf,
         0xd,0x8,0xb,0x5,0x6,0xf,0x0,0x3,0x4,0x7,0x2,0xc,0x1,0xa,0xe,0x9,
         0xa,0x6,0x9,0x0,0xc,0xb,0x7,0xd,0xf,0x1,0x3,0xe,0x5,0x2,0x8,0x4,
         0x3,0xf,0x0,0x6,0xa,0x1,0xd,0x8,0x9,0x4,0x5,0xb,0xc,0x7,0x2,0xe,
         ], 
         [ 
         0x2,0xc,0x4,0x1,0x7,0xa,0xb,0x6,0x8,0x5,0x3,0xf,0xd,0x0,0xe,0x9,
         0xe,0xb,0x2,0xc,0x4,0x7,0xd,0x1,0x5,0x0,0xf,0xa,0x3,0x9,0x8,0x6,
         0x4,0x2,0x1,0xb,0xa,0xd,0x7,0x8,0xf,0x9,0xc,0x5,0x6,0x3,0x0,0xe,
         0xb,0x8,0xc,0x7,0x1,0xe,0x2,0xd,0x6,0xf,0x0,0x9,0xa,0x4,0x5,0x3,
         ], 
         [ 
         0xc,0x1,0xa,0xf,0x9,0x2,0x6,0x8,0x0,0xd,0x3,0x4,0xe,0x7,0x5,0xb,
         0xa,0xf,0x4,0x2,0x7,0xc,0x9,0x5,0x6,0x1,0xd,0xe,0x0,0xb,0x3,0x8,
         0x9,0xe,0xf,0x5,0x2,0x8,0xc,0x3,0x7,0x0,0x4,0xa,0x1,0xd,0xb,0x6,
         0x4,0x3,0x2,0xc,0x9,0x5,0xf,0xa,0xb,0xe,0x1,0x7,0x6,0x0,0x8,0xd,
         ], 
         [ 
         0x4,0xb,0x2,0xe,0xf,0x0,0x8,0xd,0x3,0xc,0x9,0x7,0x5,0xa,0x6,0x1,
         0xd,0x0,0xb,0x7,0x4,0x9,0x1,0xa,0xe,0x3,0x5,0xc,0x2,0xf,0x8,0x6,
         0x1,0x4,0xb,0xd,0xc,0x3,0x7,0xe,0xa,0xf,0x6,0x8,0x0,0x5,0x9,0x2,
         0x6,0xb,0xd,0x8,0x1,0x4,0xa,0x7,0x9,0x5,0x0,0xf,0xe,0x2,0x3,0xc,
         ], 
         [ 
         0xd,0x2,0x8,0x4,0x6,0xf,0xb,0x1,0xa,0x9,0x3,0xe,0x5,0x0,0xc,0x7,
         0x1,0xf,0xd,0x8,0xa,0x3,0x7,0x4,0xc,0x5,0x6,0xb,0x0,0xe,0x9,0x2,
         0x7,0xb,0x4,0x1,0x9,0xc,0xe,0x2,0x0,0x6,0xa,0xd,0xf,0x3,0x5,0x8,
         0x2,0x1,0xe,0x7,0x4,0xa,0x8,0xd,0xf,0xc,0x9,0x0,0x3,0x5,0x6,0xb,
         ], 
         ] 
         __k1 = [ 
         57,49,41,33,25,17, 9, 
         1 ,58,50,42,34,26,18, 
         10, 2,59,51,43,35,27, 
         19,11, 3,60,52,44,36, 
         63,55,47,39,31,23,15, 
         7 ,62,54,46,38,30,22, 
         14, 6,61,53,45,37,29, 
         21,13, 5,28,20,12, 4, 
         ] 
         __k2 = [ 
         14,17,11,24, 1, 5, 3,28, 
         15, 6,21,10,23,19,12, 4, 
         26, 8,16, 7,27,20,13, 2, 
         41,52,31,37,47,55,30,40, 
         51,45,33,48,44,49,39,56, 
         34,53,46,42,50,36,29,32, 
         ] 
         __k0 = [ 
         1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1, 
         ] 
         __hex_bin = { 
         '0':'0000','1':'0001','2':'0010','3':'0011', 
         '4':'0100','5':'0101','6':'0110','7':'0111', 
         '8':'1000','9':'1001','a':'1010','b':'1011', 
         'c':'1100','d':'1101','e':'1110','f':'1111', 
         ' ':'0000' 
         } 
         __re = lambda t, s: ''.join(s[i-1] for i in t) 
         __IP = partial(__re, __ip) 
         __IP1 = partial(__re, __ip1) 
         __E = partial(__re, __e) 
         __P = partial(__re, __p) 
         __K1 = partial(__re, __k1) 
         __K2 = partial(__re, __k2) 
         __B = partial( lambda hex_bin, s: ''.join(hex_bin[w] 
         for w in ''.join('%2x' % ord(w) for w in s)) 
         , __hex_bin) 
         __DB = partial( lambda s: ''.join(chr(int(s[i:i+8], 2)) for i in range(0, len(s), 8))) 
         __S = partial( lambda hex_bin, __s, s: ''.join(hex_bin['%x' % __s[i][ 
         int(s[i*6]+s[i*6+5], 2)*16 + int(s[i*6+1:i*6+5], 2)]] for i in range(8)) 
         , __hex_bin, __s) 
         __F = partial( lambda s, k: ''.join('0' if s[i]==k[i] else '1' for i in range(len(s)))) 
         __K0 = partial( lambda k0, K2, k: map(K2, 
         (k[k0[i]:28]+k[0:k0[i]] + k[k0[i]+28:56]+k[28:k0[i]+28] for i in range(16))) 
         , __k0, __K2) 
         __K = partial( lambda K1, K0, k: K0(K1(k)) 
         , __K1, __K0) 
         def __init__(self): 
         pass 
         def input_key(self, key, base=10): 
         if base == 2: 
         pass 
         elif base == 16: 
         key = ''.join(self.__class__.__hex_bin[w] for w in key) 
         else: 
         key = self.__class__.__B(key) 
         self.__k = self.__class__.__K(key) 
         def __code(self, s, k): 
         s = self.__IP(s) 
         l, r = s[0:32], s[32:64] 
         for i in range(16): 
         r_t = r 
         r = self.__E(r) 
         r = self.__F(r, k[i]) 
         r = self.__S(r) 
         r = self.__P(r) 
         r = self.__F(r, l) 
         l = r_t 
         return self.__class__.__IP1(r+l) 
         def encode(self, s): 
         a = '' 
         s += ' ' * ((8-len(s)%8)%8) 
         for i in range(0, len(s), 8): 
         before = self.__class__.__B(s[i:i+8]) 
         after = self.__code(before, self.__k) 
         a += '%16x' % int(after, 2) 
         return ''.join(w if w!=' ' else '0' for w in a) 
         def decode(self, s): 
         a = '' 
         s.lower() 
         for i in range(0, len(s), 16): 
         before = ''.join(self.__class__.__hex_bin[s[j]] for j in range(i, i+16)) 
         after = self.__code(before, self.__k[::-1]) 
         a += self.__class__.__DB(after) 
         return a.rstrip().decode('utf-8') 
        if __name__ == '__main__': 
         d = DES() 
         d.input_key('123456789') 
         s = '再來一段中文' 
         a = d.encode(s) 
         print a 
         b = d.decode(a) 
         print b
        
        

        希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Python基于DES算法加密解密實(shí)例

        Python基于DES算法加密解密實(shí)例:本文實(shí)例講述了Python基于DES算法加密解密實(shí)現(xiàn)方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下: #coding=utf-8 from functools import partial import base64 class DES(object): DES加密算法 interface: input_ke
        推薦度:
        標(biāo)簽: 加密 解密 實(shí)例
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲妇女水蜜桃av网网站| 又粗又硬又大又爽免费视频播放| 中文字幕亚洲乱码熟女一区二区| 亚洲av无码成人精品国产| 久久WWW免费人成人片| 亚洲综合色婷婷在线观看| 毛片免费视频在线观看| 亚洲成av人片天堂网无码】| 成人免费a级毛片无码网站入口 | 亚洲熟妇少妇任你躁在线观看无码| 国产亚洲人成在线影院| 亚洲一区二区视频在线观看| 久久久久免费视频| 亚洲国产综合无码一区 | 91久久精品国产免费直播| 亚洲一级在线观看| 在线免费观看一级片| 青青草97国产精品免费观看| 中文字幕久久亚洲一区 | 午夜国产大片免费观看| 黄色视频在线免费观看| 亚洲av无码一区二区三区乱子伦| 在线观看免费中文视频| 亚洲精品无码专区久久| 亚洲日韩在线观看免费视频| 无码人妻AV免费一区二区三区| 亚洲人配人种jizz| 亚洲国产精品专区在线观看| 秋霞人成在线观看免费视频| 国产成人亚洲精品| 久久亚洲精品无码观看不卡| 99re热精品视频国产免费| 亚洲国产成人精品无码区二本| 亚洲欧洲国产成人综合在线观看| 99国产精品免费观看视频| 亚洲youwu永久无码精品| 伊人久久综在合线亚洲91| 国产va精品免费观看| 一级特黄aaa大片免费看| 亚洲精品在线视频观看| 四虎影在线永久免费四虎地址8848aa|