第67p,區域鏈的底層技術之,哈希與密碼加密

2020-12-13 楊數Tos

大家好,我是楊數Tos,這是《從零基礎到大神》系列課程的第X篇文章,第三階段的課程:Python進階知識:區域鏈的底層技術之,哈希與密碼加密。

一、什麼是哈希值(hash)?

哈希(hash)是一類算法的總稱,常見的哈希算法包括:MD4、MD5、sha系列等算法;哈希算法能夠將傳入的內容,經過運算得到一串哈希值。

二、哈希有什麼用?

1、哈希值的特點

A. 只要使用相同的hash算法,無論校驗的內容大小是多少,得到的哈希值的長度是固定的;

B. 使用相同的算法,只要傳入的內容是一樣的,得到的哈希值必然一模一樣;

C. 在不知道算法的情況下,不能由哈希值返解成被傳入的內容(理論上)。

2、哈希值的作用

因為哈希值具備的特殊性,所以哈希算法能夠在密碼領域起到很好的作用;

比如:我們在登陸APP時,輸入的密碼會被哈希算法加密成一串哈希值,上傳到伺服器中;因為上傳的數據都不是明文密碼,哪怕被黑客獲取到了一些數據,沒有相應的哈希算法,也只得到一堆亂碼,沒有實際作用;同時,哈希算法也是區塊鏈的底層支撐之一。

三、哈希的使用方法介紹(基於Python)

在Python中內置了一個哈希算法庫hashlib;使用hashlib庫就一行代碼就將明文轉換成哈希值;

下面是一個簡單的哈希加密示例:

以上是本期內容,如果有表達不對的內容,歡迎您的留言、斧正,我們一起天天向上。

感謝您的閱讀,您的三連【關注、點讚、收藏】就是對我最大的支持,謝謝!

本文由楊數Tos原創,歡迎關注,帶你一起長知識。

相關焦點

  • 許多人搞不清的編碼、哈希、對稱加密以及非對稱加密算法的區別
    什麼哈希算法哈希算法也稱摘要算法,是指把可變長度的數據通過運算得到固定長度散列值的不可逆算法,只要原始數據稍微改動得到的散列值機會完全不同,因為這個特性,哈希算法通常應用於對數據的完整性校驗以及密碼驗證。
  • AITD小課堂第十二課:哈希算法是什麼?非對稱加密是什麼?
    哈希算法是什麼? 區塊鏈的四大核心技術分別是密碼學、分布式帳本、共識機制以及智能合約。而密碼學作為其中最重要的一部分,可以說是區塊鏈的基石,而其他技術是以密碼學為地基,才能搭建出區塊鏈這座高樓大廈。
  • 物聯網安全基礎知識:加密技術的使用
    以往,企業應用普遍擁有隨時可用的資源來處理安全算法,但如今企業級物聯網應用卻飽受威脅日益增多之苦,且其攻擊目標是不斷擴大的資源受限型物聯網設備網絡。企業在急於迎接快速湧現的物聯網機遇時,部署的物聯網設備在功能上往往無法支持基本的安全措施,因此難以保護存儲的數據,且無法保證在易受攻擊的網絡上進行數據和命令交換。
  • Unix 之父 Ken Thompson 的密碼終於被破解
    最近,開發人員 Leah Neukirchen 在博客中稱,Unix 之父 Ken Thompson 的舊密碼被破解了。這是什麼情況呢?
  • 哈希算法、哈希值和哈希表
    這個定義看起來很拗口,因為哈希是由於密碼學、信息安全學的發展而提出的。有了哈希算法之後,各大網站的資料庫就可以選擇不直接存儲用戶密碼,而是改為存儲密碼的哈希值。這麼做有兩個好處:1、用戶設置的密碼是千奇百怪的,但是經過哈希計算之後,得出的哈希值是固定長度。如果哈希值按一定規則存儲在資料庫中(比如按後幾位),那麼相比直接檢索密碼,檢索哈希值的效率要高很多。這利用了哈希算法的輸出固定性。
  • Python哈希表:了解哈希函數與字典
    答案是它們建立在另一種技術之上:哈希表。了解Python哈希表的工作方式將使你對Python字典的工作方式有更深入了解,這對於Python理解是一個很大的優勢,因為字典在Python中幾乎無處不在。它們產生固定長度的值:無論您輸入的是1個,10個字節還是1萬個字節都沒有關係,生成的哈希將始終具有固定的預定長度。哈希函數中另一個很常見的特徵是它們通常是單向函數:因此你可以從字符串中獲取哈希,但無法從哈希中獲取原始字符串。
  • 常見三種加密:MD5、非對稱加密,對稱加密
    一、哈希HASH1.MD5加密MD5加密的特點:不可逆運算對不同的數據加密的結果是定長的32位字符(不管文件多大都一樣
  • 最佳密碼長度是多少?
    數據洩露前,一個好的密碼是你所擁有的一切但要理解什麼是安全密碼,讓我們看看另一邊發生了什麼!當您創建帳戶時,您正在註冊的服務將以多種現有密碼加密形式之一存儲密碼。密碼直接將其放入資料庫,或者使用現有算法對其進行散列。
  • 關於哈希的一切,都在這裡了!
    上一節,我們一起學習了,在Java中如何構建高性能隊列,裡面牽涉到很多底層的知識,不知道你有Get到多少呢?!本節,我想跟著大家一起重新學習下關於哈希的一切——哈希、哈希函數、哈希表。這三者有什麼樣的愛恨情仇?
  • 助力全同態加密功能提速64倍 阿里安全「飛馬」密碼技術被世界頂會...
    今年年中,加州伯克利大學的研究者希望獲取新冠病毒的感染者行為數據,來分析追蹤新冠病毒的傳播情況,考慮到數據隱私問題,他們把目光投向了同態加密技術。由於全同態加密在無需解密的情況下即可對密文進行任意計算,在保護數據隱私的基礎上充分發揮數據的價值,全同態加密一直被譽為密碼學的「聖杯」。
  • 哈希表的原理,真的很難弄懂麼?
    【Java】基礎25:List、Set以及哈希表昨天學習了幾種簡單數據結構,為何要了解數據結構?一方面的原因是因為集合的底層就是與其息息相關的。ArrayList的底層數據結構:數組。LinkedList的底層數據結構:鍊表。TreeSet的底層數據結構:紅黑樹。
  • 文件夾怎麼設置密碼,文件夾不壓縮直接加密方法
    文件夾內有重要數據需要設置密碼有哪些方法呢?可以使用bitlocker直接整盤加密,可以使用壓縮軟體設置加密,這些方法小編在之前的文章中都有介紹,今天小編來跟大家分享另外一種加密方法。(Y/N)set/p "cho=>"if %cho%==Y goto LOCKif %cho%==y goto LOCKif %cho%==n goto ENDif %cho%==N goto ENDecho Invalid choice.
  • 10分鐘了解一致性哈希算法,全網(小區區域網)(建議收藏)
    很多同學應該都知道什麼是哈希函數,在後端面試和開發中會遇到「一致性哈希」,那麼什麼是一致性哈希呢?名字聽起來很厲害的樣子,其實原理並不複雜,這篇文章帶你徹底搞懂一致性哈希!進入主題前,先來一場緊張刺激的模擬面試吧。
  • SHA-256、MD-5……哈希散列函數這些原理你懂了嗎?
    為什麼要使用哈希函數哈希函數被廣泛應用於網際網路的各個方面,主要用於安全存儲密碼、查找備份記錄、快速存儲和檢索數據等等。例如,Qvault使用哈希散列將主密碼擴展為私人加密密鑰。「確定性」在安全存儲密碼方面起著至關重要的作用。例如,假設我的密碼是「iLoveBitcoin」。
  • 哈希算法是理解區塊鏈重要一環
    民間常言:「說唱有嘻哈,算法有哈希。」在了解比特幣投資和區塊鏈技術中,哈希算法作為「常客」時常出現。但大多數朋友對它知之甚少,為它晦澀難懂的內涵所頭疼。那麼今天我們就來簡單說說,什麼是「哈希算法」? 哈希音譯自「Hash」,又名為「散列」。本質上是一種電腦程式,可接收任意長度的信心輸入,然後通過哈希算法,創建小的數字「指紋」的方式。
  • 犯罪大師《偵探的密碼(上)》解析 電腦加密文件的密碼
    最近玩犯罪大師這款遊戲的玩家都在問,遊戲裡面偵探的密碼是什麼?犯罪大師《偵探的密碼(上)》雖然不是一個完整的案件,但是很多玩家還是沒能猜出密碼是多少,小編我特意整理了相關的資訊,下面就是蠶豆網小編偵探的密碼上答案解析了,感興趣的小夥伴們一起來看看吧!
  • 犯罪大師偵探的密碼上密碼是什麼?硬碟凱撒密碼加密答案公布
    犯罪大師這款遊戲一向十分燒腦,每過幾天都會給全球的玩家們帶來稀奇古怪的案件,今天40407小編為各位玩家們帶來的是犯罪大師偵探的密碼上這個案件的解析,凱撒密碼加密的答案是什麼呢?警方推測被害人.電腦內的加密文件中有重要信息,故將相關信息公布在「Crimaster犯罪大師』'APP平臺上,期盼廣大偵探協助警方破譯密碼,早日將兇手捉拿歸案!
  • 加密算法科普:des、aes加密、對稱、非對稱加密、Hash算法都是啥
    它的密鑰長度是56位(因為每個第8 位都用作奇偶校驗),密鑰可以是任意的56位的數,而且可以任意時候改變。其中有極少數被認為是易破解的弱密鑰,但是很容易避開它們不用。所以保密性依賴於密鑰。DES加密的算法框架如下:首先要生成一套加密密鑰,從用戶處取得一個64位長的密碼口令,然後通過等分、移位、選取和迭代形成一套16個加密密鑰,分別供每一輪運算中使用。
  • 談談區塊鏈的加密技術(公鑰、私鑰)
    在密碼學中,加密是密碼學中的核心概念,它以一種「除接收者外任何人都無法解密的方式」對消息進行編碼,其他人無法讀取和理解數據格式,以此來保護數據免受攻擊。據說,第一個使用密碼學技術的是古羅馬凱撒大帝,他發明了「凱撒密碼(Caesar cipher)」來保護重要的軍事情報。
  • MySQL敏感數據怎麼加密 數據加密解密教程
    MySQL加密函數的方式2.1  MySQL加密將明文表中的數據插入到f_user_m中,同時對pwd密碼欄位進行加密存儲,注意要記住加密的字符串,因為解密的時候要用到這個值。for column 'pwd' at row 1可以用如下三種方式處理:1) 加密後的數據在utf8 字符集下必須存放在varbinary/binary/blob等二進位欄位屬性的欄位中,故上文中密碼欄位的類型設置為varbinary類型2) 可以對加密後的數據使用HEX()函數來 16 進位化存入,取出時先用UNHEX()處理再解密3)