日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

密码学------SHA_1加密的python实现

發布時間:2024/1/1 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 密码学------SHA_1加密的python实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.算法介紹

SHA-1(英語:Secure Hash Algorithm 1,中文名:安全散列算法1)是一種密碼散列函數,美國國家安全局設計,并由美國國家標準技術研究所(NIST)發布為聯邦數據處理標準(FIPS)。SHA-1可以生成一個被稱為消息摘要的160位(20字節)散列值,散列值通常的呈現形式為40個十六進制數

2.源碼

import math# 異或算法 def xor_func(a, b):a = bin(a)[2:]b = bin(b)[2:]while len(a) < 32:a = '0' + awhile len(b) < 32:b = '0' + bc = ''for i in range(0, 32):if a[i] == b[i]:c = c + '0'else:c = c + '1'return c# 與運算 def and_func(a, b):a = bin(a)[2:]b = bin(b)[2:]while len(a) < 32:a = '0' + awhile len(b) < 32:b = '0' + bc = ''for i in range(0, 32):if a[i] == '1' and b[i] == '1':c = c + '1'else:c = c + '0'return c# ROTL運算 def ROTL_func(a, n):a = a * 2 ** nt = int(a / 2 ** 32)a = a % (2 ** 32) + treturn a# 非門 def NOT_func(a):a = bin(a)[2:]while len(a) < 32:a = '0' + ac = ''for ch in a:if ch == '0':c = c + '1'else:c = c + '0'return c# 步函數算法編寫 def step_func(W, list):A = list[0]B = list[1]C = list[2]D = list[3]E = list[4]t = 0# t=0-19的計算while t <= 19:k = 0x5A827999 # K1if t <= 15:w = W[t]else:w = xor_func(int(W[t - 3], 16), int(W[t - 8], 16)) # t>15后進行新的賦值w = xor_func(int(w, 2), int(W[t - 14], 16))w = xor_func(int(w, 2), int(W[t - 16], 16))temp = w[0]w = w[1:] + tempw = hex(int(w, 2))W.append(w)t += 1x = and_func(int(B), int(C)) #y = NOT_func(B) #z = and_func(int(y, 2), int(D)) #a = int(xor_func(int(x, 2), int(z, 2)), 2) # Ch(x,y,z)e = EE = DD = CC = ROTL_func(int(B), 30) % (2 ** 32)B = AA = int(ROTL_func(int(A), 5) + a + int(e) + int(w, 16) + int(k)) % (2 ** 32)# t=20-39的計算while t <= 39 and t >= 20:k = 0x6ED9EBA1 # K2w = xor_func(int(W[t - 3], 16), int(W[t - 8], 16))w = xor_func(int(w, 2), int(W[t - 14], 16))w = xor_func(int(w, 2), int(W[t - 16], 16))temp = w[0]w = w[1:] + tempw = hex(int(w, 2))W.append(w)x = int(xor_func(B, C), 2) #y = int(xor_func(x, D), 2) # Parity(x,y,z)e = EE = DD = CC = ROTL_func(int(B), 30) % (2 ** 32)B = AA = int(ROTL_func(int(A), 5) + y + int(e) + int(w, 16) + int(k)) % (2 ** 32)t += 1# t=40-59的計算while t <= 59 and t >= 40:k = 0x8f1bbcdc # K3w = xor_func(int(W[t - 3], 16), int(W[t - 8], 16))w = xor_func(int(w, 2), int(W[t - 14], 16))w = xor_func(int(w, 2), int(W[t - 16], 16))temp = w[0]w = w[1:] + tempw = hex(int(w, 2))W.append(w)x = int(and_func(B, C), 2) #y = int(and_func(B, D), 2) #z = int(and_func(C, D), 2) #xx = int(xor_func(x, y), 2) #yy = int(xor_func(xx, z), 2) # Maj(x,y,z)e = EE = DD = CC = ROTL_func(int(B), 30) % (2 ** 32)B = AA = int(ROTL_func(int(A), 5) + yy + int(e) + int(w, 16) + int(k)) % (2 ** 32)t += 1# t=60-79的計算while t <= 79 and t >= 60:k = 0xca62c1d6 # K4w = xor_func(int(W[t - 3], 16), int(W[t - 8], 16))w = xor_func(int(w, 2), int(W[t - 14], 16))w = xor_func(int(w, 2), int(W[t - 16], 16))temp = w[0]w = w[1:] + tempw = hex(int(w, 2))W.append(w)x = int(xor_func(B, C), 2) #y = int(xor_func(x, D), 2) # Parity(x,y,z)e = EE = DD = CC = ROTL_func(int(B), 30) % (2 ** 32)B = AA = int(ROTL_func(int(A), 5) + y + int(e) + int(w, 16) + int(k)) % (2 ** 32)t += 1AA = 0x67452301BB = 0xEFCDAB89CC = 0x98BADCFEDD = 0x10325476EE = 0xC3D2E1F0A = (AA + A) % (2 ** 32)B = (BB + B) % (2 ** 32)C = (CC + C) % (2 ** 32)D = (DD + D) % (2 ** 32)E = (EE + E) % (2 ** 32)# 給列表傳值list[0] = Alist[1] = Blist[2] = Clist[3] = Dlist[4] = E# 讀取需要加密的明文 def main():A = 0x67452301B = 0xEFCDAB89C = 0x98BADCFED = 0x10325476E = 0xC3D2E1F0list = [A, B, C, D, E]# 三組測試明文# m = 'Beijing University of Posts and Telecommunications'm = 'State Key Laboratory of Networking and Switching'# m = 'iscbupt'print('明文為:', m)W = []l = len(m)x = hex(len(m) * 8)n = 0 # 字符串的讀取位置while 1:# 長度大于64,即所占字節大于512,需要分段處理if l > 64:m = m[n:]nn = 0for i in range(1, 64):if int(nn / 4) * 4 + 4 <= len(m):p = p + hex(ord(m[nn]))[2:4]if (nn + 1) % 4 == 0:W.append(p)p = ''nn = nn + 1step_func(W, list)n += 64l -= 64W = []# 長度在56與64之間,若要字節在448到512之間,若要其字節滿足與512模448同余,還需額外添加使其達到1024字節elif l >= 56 and l <= 64:mm = m[n:]nn = 0p = ''j = 0for i in range(1, 64):if int(nn / 4) * 4 + 4 <= len(mm):p = p + hex(ord(mm[nn]))[2:4]if (nn + 1) % 4 == 0:W.append(p)j += 1p = ''nn = nn + 1else:breakjudge = 0for i in range(0, 4):if nn < len(mm):p = p + hex(ord(mm[nn]))[2:4]nn = nn + 1else:if judge == 0:p = p + '80'judge = 1elif judge == 1:p = p + '00'W.append(p)j += 1if j == 15:p = '00000000'W.append(p)step_func(W, list)W = []p = '00000000'for i in range(0, 14):W.append(p)length = len(x) - 2p = ''for i in range(0, 16 - length):p = p + '0'p = p + x[2:]W.append(p[0:8])W.append(p[8:16])step_func(W, list)break# 長度小于56,字節數在0到448之間,需要補全字節使其長度為512elif l < 56:mm = m[n:]nn = 0p = ''for i in range(1, 56):if int(nn / 4) * 4 + 4 <= len(mm):p = p + hex(ord(mm[nn]))[2:4]if (nn + 1) % 4 == 0:W.append(p)p = ''nn = nn + 1else:breakjudge = 0for i in range(0, 4):if nn < len(mm):p = p + hex(ord(mm[nn]))[2:4]nn = nn + 1else:if judge == 0:p = p + '80'judge = 1elif judge == 1:p = p + '00'W.append(p)for i in range(int(len(mm) / 4) + 1, 14):p = '00000000'W.append(p)length = len(x) - 2p = ''for i in range(0, 16 - length):p = p + '0'p = p + x[2:]W.append(p[0:8])W.append(p[8:16])step_func(W, list)breakc = hex(list[0])[2:] + hex(list[1])[2:] + hex(list[2])[2:] + hex(list[3])[2:] + hex(list[4])[2:]print('密文為:', c)main()

3.運行結果

明文為: State Key Laboratory of Networking and Switching 密文為: ea616117a3115a3caa792813ac5de2743f00b613

總結

以上是生活随笔為你收集整理的密码学------SHA_1加密的python实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲无吗在线观看 | 黑人精品欧美一区二区蜜桃 | 人人妻人人澡人人爽精品欧美一区 | 韩国甜性涩爱 | 欧美日韩一区在线播放 | 天天综合天天色 | 国产精品日本一区二区在线播放 | 国产ts人妖系列高潮 | 久久亚洲精精品中文字幕早川悠里 | 99久久久无码国产精品性色戒 | 九九99精品 | 99re热这里只有精品视频 | 国产传媒欧美日韩 | 亚洲av永久无码精品 | 国产一二视频 | 日韩一级黄 | 国产精品815.cc红桃 | av不卡一区二区 | 台湾佬美性中文娱乐 | 国产区视频 | 日韩视频三区 | 亚洲成a人片777777久久 | 性色浪潮 | 免费黄色网址在线观看 | 乖女从小调教h尿便器小说 欧美韩一区二区 | 精品国偷自产国产一区 | 欧美激情69| 神马午夜av| 91av毛片| 99精品热视频 | 老版水浒传83版免费播放 | 日韩人妻无码一区二区三区99 | 成人开心激情 | jizzjizz免费| 99精品在线 | 高清国产一区二区三区四区五区 | 鸭子av| 午夜免费一区 | 成人a在线 | 国产美女免费网站 | 夜夜嗨网站 | 精品一区李梓熙捆绑 | 久久久永久久久人妻精品麻豆 | 国产夫妻精品 | 久久亚洲精华国产精华液 | 欧美性精品 | 日韩不卡在线 | 深爱激情综合 | 91麻豆精品国产91久久久无需广告 | 色桃视频 | 中文字幕av网| 青青草av在线播放 | 成人欧美日韩 | 鬼灭之刃柱训练篇在线观看 | 国产三级久久久久 | 国产伦精品一区二区三区在线 | www.夜夜爽| 骚虎免费视频 | 男女一起插插插 | 久久精品无码一区二区三区毛片 | 一区免费视频 | 精品国产精品三级精品av网址 | 天天欲色 | 精品在线免费观看 | 欧美日日日 | 亚洲精品一区二区三区新线路 | 中文字幕在线播放第一页 | 国产美女久久久久久 | 欧美特级黄色录像 | 成人一区二区av | 国产乱淫av | 久久精品首页 | 狠狠躁日日躁夜夜躁2022麻豆 | 丁香啪啪综合成人亚洲 | 久久精品这里有 | 精品国产免费观看 | 亚洲男同视频 | 国产一级二级在线观看 | 超碰免费91 | 国内自拍第二页 | 色片在线免费观看 | 探花视频在线版播放免费观看 | 一区二区美女 | 91精品国产成人 | 奇米影视亚洲春色 | 亚洲视频免费观看 | xxxx国产精品 | 国产精品一区二区三区不卡 | 国产亚洲欧美精品久久久www | 99riav在线 | 亚洲国产97| 日韩中文av | 中文字幕免费一区 | 欧美精品入口蜜桃 | 久久嗨 | 国产精品一区久久久 | 亚洲成人网在线播放 | 日本黄色免费网站 | 蜜臀av一区二区三区激情综合 |