最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python加密模塊的hashlib,hmac模塊使用解析

 更新時間:2020年01月02日 09:21:27   作者:就是想學習  
這篇文章主要介紹了Python加密模塊的hashlib,hmac模塊使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了Python加密模塊的hashlib,hmac模塊使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

在寫搬磚腳本中,碰到一個加密的信號標簽文件無法運行。

import hashlib
import time
 
m = hashlib.md5()
 
api_key = ''
api_secret = ''
 
params = {'api_key':api_key, 'time':int(time.time()), 'symbol':'btclcny'}
 
def sign( data , secret ):
  signStr = ""
  keys = data.keys()
  keys = sorted(keys)
  for key in keys:
    signStr = signStr + key
    signStr = signStr + bytes(data[key])
    pass
  signStr += secret
  m.update(signStr)
  return m.hexdigest()
 
print sign( params , api_secret )

實在搞不懂寫的人的意思,里面有字符串與字節(jié)碼的相加?反正就是跑不起來,隨便我這個加密模塊也用的少,這次就給自己記錄學習的機會來了。

媽的,這個平臺太垃圾了,接口有問題的,浪費我好長時間,后面還去看了它的PHP代碼,看的腦子發(fā)麻,后來仔細研究了傳入 params,里面的接口文檔寫的亂七八糟,浪費時間。一萬頭草泥馬飛過。

切入主題,先講hashlib,后面介紹hmac,有時間下一個章節(jié),把base64還有io,以及pickle,json,shelve,fileinput.

概念:

Python的hashlib提供了常見的摘要算法,如MD5,SHA1等等。

什么是摘要算法呢?摘要算法又稱哈希算法、散列算法。它通過一個函數(shù),把任意長度的數(shù)據(jù)轉(zhuǎn)換為一個長度固定的數(shù)據(jù)串(通常用16進制的字符串表示)。所以看來的hash加密值沒有超過字母f的

后面可以測試每種加密手法的輸出字段長度,也可以知道具體輸出的Byte字節(jié)數(shù)(一個16進制的數(shù)對應(yīng)4位)。

'''初始化對象'''
h1 = hashlib.md5()
h2 = hashlib.new('md5')
h3 = hashlib.md5()
h1.update(b'123')  # 進行摘要
h2.update('123'.encode())
h3.update(b'1')
h3.update(b'23')
print(h1.hexdigest())  # 取值
print(h2.hexdigest())
print(h3.hexdigest())
202cb962ac59075b964b07152d234b70<br data-filtered="filtered">202cb962ac59075b964b07152d234b70<br data-filtered="filtered">202cb962ac59075b964b07152d234b70

一共有兩種實例化的方法,一般介紹都是第一種。記住,進行進行md5摘要時,對象一定是二進制數(shù)據(jù)。

update其實可以分開用,只要里面的數(shù)據(jù)沒有變,分開用書上介紹對大文件操作會更加快。

由于這樣直接加密,沒有添加輔助字符,假如是用戶的密碼設(shè)置的很簡單,很容易通過加密后的數(shù)據(jù)也能反向分析出密碼,所以要添加一些干擾詞匯。

hmac也是干擾加密的另外一種相對看過去比較高級的寫法。

add_word = b'haha'     # 把這個當做加密鹽,
 
hh1 = hashlib.md5()
hh1.update(add_word + b'jiujiu')
print(hh1.hexdigest())
 
hh2 = hashlib.md5()
hh2.update( b'jiujiu' + add_word)
print(hh2.hexdigest())
 
m = hmac.new(add_word) # 這個跟hashlib的寫法有點類似,默認是md5加密
m.update(b'jiujiu')
print(m.hexdigest())
h_md5 = hmac.new(add_word, b'jiujiu').hexdigest() # 這是另外一種方式,直接加密后取值。
h_sha1 = hmac.new(add_word, b'jiujiu', 'sha1').hexdigest()
h_sha224 = hmac.new(add_word, b'jiujiu', 'sha224').hexdigest()
h_sha256 = hmac.new(add_word, b'jiujiu', 'sha256').hexdigest()
h_sha512 = hmac.new(add_word, b'jiujiu', 'sha512').hexdigest()
 
print(h_md5, len(h_md5), sep='======>num')
print(h_sha1, len(h_sha1), sep='======>num')  # 通過輸出可以看出,md5輸出32個16進制數(shù)字,一共128位
print(h_sha224, len(h_sha224), sep='======>num')  # sha1輸出40個數(shù)字,所以為160位,剩下的sha后面的數(shù)字就代表輸出幾位。
print(h_sha256, len(h_sha256), sep='======>num')
print(h_sha512, len(h_sha512), sep='======>num')
3e289c523f955430bce2e47a14d4934b
eb01e09a1fe2bfd95d8f31c8ae544faf
ef84bc9ee2bf91d1789227d82193d7a9
ef84bc9ee2bf91d1789227d82193d7a9======>num32
fbd95ddafdac6352cdf3d9d4e8c6d2421c80e56c======>num40
60d1896d00e73bc67469a58b39ded91c60c162eda0f44306f7d08d58======>num56
b36f8977bba6265612bc338b89c698d17cff7ccfb81b7d7a434f0ad889995e26======>num64
043f51bd410f9d328ca0ab0913ddfde9c2519f639c74447a1516811b8920b125aa6f4d3977c83e038e82c39103ac2a3bbdd5235c9c95fc030a267cdf0d578696======>num128

從整個代碼的操作來看還是比較簡單,至少比我想象的簡單,加密的邏輯我也不懂,我也知道密碼學很高級,就我這小學三年級的數(shù)學有空再看吧。

hmac只不過是一種機器加密的手段,但我試過了,無論我把這個加密鹽放加密字節(jié)碼的前面或者后面,跟hmac出來的效果不一樣,看來它有自己的拼接加密算法。

至于sha1,sha256,sha512就比較容易記住了,md5是32個16進制數(shù)輸出,所以包含bit是128位,sha1是是輸出40個16進制數(shù),所以是160個bit,剩下的比較好理解,后面的數(shù)字代表了幾個bit位。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實現(xiàn)ipsec開權(quán)限實例

    python實現(xiàn)ipsec開權(quán)限實例

    這篇文章主要介紹了python實現(xiàn)ipsec開權(quán)限的方法,彌補了windows自帶的命令行工具netsh ipsec static add filter不支持批量添加及添加重復規(guī)則的不足,非常具有實用價值,需要的朋友可以參考下
    2014-11-11
  • python打開隱藏控制臺方法詳解

    python打開隱藏控制臺方法詳解

    這篇文章主要為大家介紹了python打開隱藏控制臺方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Python 中使用 PyMySQL模塊操作數(shù)據(jù)庫的方法

    Python 中使用 PyMySQL模塊操作數(shù)據(jù)庫的方法

    這篇文章主要介紹了Python 中使用 PyMySQL模塊操作數(shù)據(jù)庫的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • 基于python實現(xiàn)自動化辦公學習筆記(CSV、word、Excel、PPT)

    基于python實現(xiàn)自動化辦公學習筆記(CSV、word、Excel、PPT)

    這篇文章主要介紹了基于python實現(xiàn)自動化辦公學習筆記,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Python讀取ini配置文件傳參的簡單示例

    Python讀取ini配置文件傳參的簡單示例

    這篇文章主要給大家介紹了關(guān)于Python讀取ini配置文件傳參的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • python實現(xiàn)下載指定網(wǎng)址所有圖片的方法

    python實現(xiàn)下載指定網(wǎng)址所有圖片的方法

    這篇文章主要介紹了python實現(xiàn)下載指定網(wǎng)址所有圖片的方法,涉及Python針對頁面的讀取、遍歷及文件操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • python中queue.Queue之task_done的用法

    python中queue.Queue之task_done的用法

    這篇文章主要介紹了python中queue.Queue之task_done的用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python利用shutil實現(xiàn)拷貝文件功能

    Python利用shutil實現(xiàn)拷貝文件功能

    shutil?是一個?Python?內(nèi)置模塊,該模塊對文件的復制、刪除和壓縮等操作都提供了非常方便的支持。本文將利用shutil實現(xiàn)拷貝文件功能,需要的可以參考一下
    2022-07-07
  • Python實現(xiàn)i人事自動打卡的示例代碼

    Python實現(xiàn)i人事自動打卡的示例代碼

    這篇文章主要介紹了Python實現(xiàn)i人事自動打卡的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 如何計算 tensorflow 和 pytorch 模型的浮點運算數(shù)

    如何計算 tensorflow 和 pytorch 模型的浮點運算數(shù)

    FLOPs 是 floating point operations 的縮寫,指浮點運算數(shù),可以用來衡量模型/算法的計算復雜度。本文主要討論如何在 tensorflow 1.x, tensorflow 2.x 以及 pytorch 中利用相關(guān)工具計算對應(yīng)模型的 FLOPs,需要的朋友可以參考下
    2022-11-11

最新評論

宜川县| 娄烦县| 繁昌县| 洮南市| 田阳县| 通海县| 堆龙德庆县| 正定县| 新巴尔虎左旗| 大渡口区| 崇文区| 永城市| 靖安县| 屏南县| 石城县| 微博| 河曲县| 中阳县| 吉隆县| 高雄县| 麻栗坡县| 平乡县| 巧家县| 华安县| 临江市| 张家川| 洪湖市| 墨竹工卡县| 巴林右旗| 工布江达县| 衡阳县| 额济纳旗| 丹棱县| 兴安盟| 黄山市| 凭祥市| 饶阳县| 当阳市| 阳谷县| 迭部县| 唐河县|