亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

RC4-文件加密的python實現方法

2019-11-02 14:23:52
字體:
來源:轉載
供稿:網友

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

  基于RC4流加密算法,使用擴展的16*16的S盒,32字節密鑰。

  目前應該是比較安全的。

  剛學習python,好不容易調通了。

  而且在VC和python下各實現了一遍,兩個平臺能夠互相加解密,很有成就感的說。

  下面是python3.0中的實現,在2.x下需要稍加修改。

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 # for python 3.0 # from 李勃 import struct,sys,os,binascii """ RC4加密算法 16*16 S盒 加密單元:short """ def RC4(pkey,keylen,pin,dlen): N=65536 S = list(range(N)) j = 0 for i in range(N): j = (j + S[i] + pkey[i%keylen])%N temp = S[i] S[i] = S[j] S[j] = temp i = j = 0 pout= b'' for x in range(dlen): i = i+1 j = (j + S[i])%N temp = S[i] S[i] = S[j] S[j] = temp pout += struct.pack('H',pin[x]^S[(S[i]+S[j])%N]) return(pout) # bytes->short def Coding(data): if(len(data)%2): data+=b'' dlen = len(data)//2 return(struct.unpack(str(dlen)+'H',data)) # short->bytes def unCoding(data): d=b'' for i in range(len(data)): d += struct.pack('H',data[i]) return(d) #產生32字節密鑰 def CreatKey(Keyt): pl = len(Keyt) Key=b'' r=0 for i in range(32): k=(Keyt[r%pl]+i)%256 Key+= struct.pack('B',k) r+=1 return Key #更新密鑰 def UpdataKey(Keyt): Key = unCoding(Keyt) #循環左移 Key = Key[1:] + struct.pack('B',Key[0]) tem=0 #求和 for i in range(len(Key)): tem += Key[i]; Keyo=b'' #Xor for i in range(len(Key)): Keyo += struct.pack('B',(Key[i]^tem)%256) tem += Keyo[i]>>3 tem = tem % 256 return(Coding(Keyo)) if __name__ == '__main__': #獲得輸入文件 if len(sys.argv)==1: filename = input('源文件: ') else: filename = sys.argv[1]   try: fin = open(filename,'rb') except: print('打開文件失??!') input() sys.exit() print(filename) #打開輸出文件 if filename[-4:]=='.RC4': eID = 1 key=input('輸入解密密鑰: ').encode() ofilename = filename[:-4] else: eID = 2 key=input('輸入加密密鑰: ').encode() ofilename = filename+'.RC4' key = Coding(CreatKey(key)) key = UpdataKey(key)   #處理重名 while os.path.exists(ofilename): ofilename = os.path.dirname(ofilename)+ '副本 '+ os.path.basename(ofilename) fout = open(ofilename,'wb') print(ofilename) #解密 if eID==1: #讀文件長度 filelen = struct.unpack('I',fin.read(4))[0] print('FlieLen =',filelen,'n......') while 1: #讀塊大小 ps= fin.read(2) if not ps: #文件結束 break packsize = struct.unpack('H',ps)[0] #讀數據 dd=fin.read(packsize) #解密 dd=Coding(dd) x = RC4(key,len(key),dd,len(dd)) key = UpdataKey(key) #crc crc = struct.unpack('I',fin.read(4))[0] if binascii.crc32(x)!=crc: print('CRC32校驗錯誤!',crc,binascii.crc32(x)) input() sys.exit() fout.write(x) #裁剪末尾填充位 fout.truncate(filelen) #加密 elif eID==2: #獲得文件長度 fin.seek(0,2) filelen = fin.tell() print('FlieLen =',filelen,'n......') fin.seek(0,0) fout.write(struct.pack('I',filelen)) while 1: #讀數據 dd=fin.read(65534) if not dd: #文件結束 break #末尾填充 srl = len(dd) if srl%2: srl+=1; dd+=b'' #crc crc = struct.pack('I',binascii.crc32(dd)) #加密數據 dd=Coding(dd) x = RC4(key,len(key),dd,len(dd))
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩有码在线观看| 91精品国产91久久久久久最新| 中文字幕日韩av综合精品| 亚洲精品中文字| 91美女片黄在线观看游戏| 日韩av综合网| 在线观看日韩www视频免费| 国产日本欧美一区二区三区| 亚洲japanese制服美女| 在线观看国产精品淫| 国产午夜精品一区二区三区| 国产精品狠色婷| 精品久久久在线观看| 亚洲国产97在线精品一区| 国产精品久久久久久搜索| 国产v综合ⅴ日韩v欧美大片| 热久久免费国产视频| 国产成人精品免费久久久久| 日韩美女免费观看| 在线日韩欧美视频| 日本在线观看天堂男亚洲| 国内外成人免费激情在线视频网站| 91精品久久久久久久久不口人| 日韩视频免费大全中文字幕| 亚洲精品成a人在线观看| 78m国产成人精品视频| 国产精品成人免费电影| 中文字幕av一区中文字幕天堂| 欧美日韩加勒比精品一区| 久热在线中文字幕色999舞| 高清欧美一区二区三区| 国产亚洲精品一区二555| 亚洲一区二区三区sesese| 日韩精品免费综合视频在线播放| 亚洲欧美在线磁力| 国产精品电影一区| www.国产精品一二区| 国产男女猛烈无遮挡91| 亚洲欧美日本伦理| 欧美人与性动交a欧美精品| 日韩av一区在线| 中文字幕亚洲精品| 欧美日韩国产成人在线观看| 欧美成人午夜视频| 国产精品入口免费视| 夜夜嗨av一区二区三区四区| 亚洲va欧美va在线观看| 91久久久久久久一区二区| 一区二区三区四区在线观看视频| 97超碰蝌蚪网人人做人人爽| 日韩av色综合| 91禁外国网站| 亚洲欧美日韩一区在线| 亚洲美女激情视频| 自拍亚洲一区欧美另类| 91国产精品视频在线| 国产91露脸中文字幕在线| 欧美在线性爱视频| 国产情人节一区| 精品成人久久av| 国产欧洲精品视频| 日韩精品在线视频| 亚洲成色777777在线观看影院| 91av视频在线观看| 国产精品久久久久久久久久小说| 日韩av资源在线播放| 伊人av综合网| 国产精品久久91| 午夜精品一区二区三区av| 在线观看欧美日韩| 91福利视频在线观看| 日韩毛片中文字幕| 色无极影院亚洲| 92看片淫黄大片欧美看国产片| 欧美大尺度激情区在线播放| 欧美日韩国产一区二区三区| 成人在线观看视频网站| 青青草一区二区| 国产精品精品久久久| 2019中文字幕在线| 欧美自拍视频在线| 国产精品成久久久久三级| 欧美性猛交xxxx黑人猛交| 精品视频在线观看日韩| 亚洲伊人久久综合| 成人a在线观看| 国产一区二区在线免费视频| 国产精品一区二区三| 91免费人成网站在线观看18| 国产成人久久精品| 色综合伊人色综合网站| 久久久综合免费视频| 国内精品视频久久| 国产精品男女猛烈高潮激情| 欧美性猛交xxxx富婆弯腰| 国产精品h在线观看| 国产精品看片资源| 91国产高清在线| 456亚洲影院| 日韩中文字幕亚洲| xxxxx成人.com| 91禁国产网站| 成人伊人精品色xxxx视频| 日韩在线视频网站| 中文字幕亚洲综合| 久久夜色精品亚洲噜噜国产mv| 国产精品久久77777| 国产精品午夜一区二区欲梦| 国产亚洲a∨片在线观看| 欧美三级xxx| 日韩中文在线中文网在线观看| 成人国产精品久久久久久亚洲| 欧美一级成年大片在线观看| 国产亚洲aⅴaaaaaa毛片| 狠狠做深爱婷婷久久综合一区| 精品在线欧美视频| 亚洲男人的天堂网站| 久久69精品久久久久久久电影好| 中文字幕欧美专区| 久久免费视频网站| 亚州av一区二区| 日本久久久久久久久久久| 亚洲xxxxx性| 欧美日韩国产一区在线| 不卡伊人av在线播放| 亚洲天堂2020| 欧美亚洲视频在线观看| 日韩免费看的电影电视剧大全| 日韩av电影手机在线| 久久国产精彩视频| 国产性色av一区二区| 欧美中文在线观看国产| 日韩在线视频一区| 国产精品91视频| 亚洲在线www| 色一情一乱一区二区| 国产美女精彩久久| 欧美激情第6页| 最近2019免费中文字幕视频三| 欧美日韩成人在线观看| 成年人精品视频| 2019国产精品自在线拍国产不卡| 欧美色图在线视频| 亚洲精品国产拍免费91在线| 中文字幕欧美日韩在线| 久久久999精品免费| 中文字幕综合在线| 91精品国产91久久久久福利| 精品国产鲁一鲁一区二区张丽| 国产亚洲精品久久久久久牛牛| 国产一区二区三区高清在线观看| 国产日韩在线看片| 日韩高清有码在线| 欧美精品电影免费在线观看| 久久免费视频在线观看| 91国内在线视频| 国产日韩av在线播放| 97国产suv精品一区二区62| 在线电影中文日韩| 国产99久久精品一区二区 夜夜躁日日躁| 日韩在线观看av| 欧洲亚洲在线视频| 亚洲最大的av网站| 亚洲第一黄色网|