99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

哈希是什么,常見的哈希算法有哪些

18125913365 ? 來源:18125913365 ? 作者:18125913365 ? 2022-06-23 14:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

什么是哈希?

哈希又稱作“散列”,是一種數學計算機程序,它接收任何一組任意長度的輸入信息,通過哈希算法變換成固定長度的數據指紋輸出形式,如字母和數字的組合,該輸出就是“哈希值”??傮w而言,哈希算法可理解為一種消息摘要算法,將消息或數據壓縮變小并擁有固定格式。由于其單向運算具有一定的不可逆性,哈希算法已成為加密算法中一個構成部分,但完整的加密機制不能僅依賴哈希算法。在一個cache系統(tǒng)中,需要實現一個域名白名單,域名為下列數據:、、sohu.com 等該白名單需要在程序啟動時加載一次,主要執(zhí)行查詢操作。請設計一個數據結構和相應的初始化查詢函數,使得檢索盡可能的快。(不能使用stl::map,等等key-value刑類庫)。

我們可以看到,該題目提出了字符串的快速查找,并且只加載一次。使用Hash比較好。

我們可能首先就是想到使用 C++ 中的 MAP ,題目中給出了不允許使用MAP,那么肯定第二選擇就是使用Berkeley DB (DB)這種的文件數據庫了,但是題目中明顯提出不允許使用key-value類型庫。

我們思考Berkeley DB (DB)的原理可以曉得,這個就是一個Hash的過程,map其實也是hash的思想。

自己設計一個hash系統(tǒng)咯。沖突處理…

字符串hash可能就想到使用ELFhash算法,主要分析下ELFHash算法。

ELFhash函數在UNIX系統(tǒng)V 版本4中的“可執(zhí)行鏈接格式”( Executable and Linking Format,即ELF )中會用到,ELF文件格式用于存儲可執(zhí)行文件與目標文件。ELFhash函數是對字符串的散列。它對于長字符串和短字符串都很有效,字符串中每個字符都有同樣的作用,它巧妙地對字符的ASCII編碼值進行計算,ELFhash函數對于能夠比較均勻地把字符串分布在散列表中。

這些函數使用位運算使得每一個字符都對最后的函數值產生影響。

常見哈希算法

目前常見的 Hash 算法包括國際上的 Message Digest( MD) 系列和 Secure Hash Algorithm( SHA) 系列算法,以及國內的 SM3 算法。

其中,SHA 256 是 SHA 系列算法之一,由美國國安局設計、美國國家標準與技術研究院發(fā)布的一套哈希算法,由于其摘要長度為 256bits,故稱 SHA 256。SHA 256也是保護數字信息的最安全的方法之一。

例如計算

“hello blockchain world, this is yeasy@github”的SHA-256 Hash值,

得到的結果將是

“db8305d71a9f2f90a3e118a9b49a4c381d2b80cf7bcef81930f30ab1832a3c90”。

對于某個文件,無需查看原始內容,只要其 SHA-256 Hash 計算后結果相同,則說明該文件內容極大概率就是一樣的。

審核編輯:符乾江

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3927

    瀏覽量

    66241
  • 源碼
    +關注

    關注

    8

    文章

    671

    瀏覽量

    30336
  • C++
    C++
    +關注

    關注

    22

    文章

    2119

    瀏覽量

    75324
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    一文詳解Nginx負載均衡

    Nginx作為負載均衡器,通過將請求分發(fā)到多個后端服務器,以提高性能、可靠性和擴展性。支持多種負載均衡算法,如輪詢、最小連接數、IP哈希等,可以根據需求選擇適合的算法。
    的頭像 發(fā)表于 06-25 14:51 ?194次閱讀
    一文詳解Nginx負載均衡

    工業(yè)物聯(lián)網常見的協(xié)議哪些

    工業(yè)物聯(lián)網常見的協(xié)議哪些
    的頭像 發(fā)表于 06-14 15:52 ?326次閱讀

    DS28E54 1-Wire SHA3-256安全認證器,兼容DS2431/DS28E07技術手冊

    DS28E54 安全身份驗證器結合了 FIPS 202- 合規(guī)的安全哈希算法 (SHA-3) 質詢和 響應身份驗證,帶 Secured Electrically 可擦除可編程只讀存儲器 (EEPROM)。
    的頭像 發(fā)表于 05-13 11:36 ?296次閱讀
    DS28E54 1-Wire SHA3-256安全認證器,兼容DS2431/DS28E07技術手冊

    【RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用】RA4E2使用之SHA256加密解密

    和解密算法來進行解釋和說明數據加密和解密操作的。 SHA-256是一種哈希函數,屬于SHA-2(Secure Hash Algorithm 2)家族的一部分。它是由美國國家安全局(NSA)設計,并由
    發(fā)表于 12-23 18:18

    加密算法在網絡安全中扮演什么角色?

    : 通過哈希函數和消息認證碼(MAC),加密算法可以檢測數據在傳輸過程中是否被篡改,確保數據的完整性。 提供身份驗證 : 非對稱加密算法和數字簽名技術可以驗證通信雙方的身份,防止身份冒充攻擊。 實現數據簽名 : 數字簽名使用非
    的頭像 發(fā)表于 12-17 16:00 ?535次閱讀

    常見的加密算法哪些?它們各自的優(yōu)勢是什么?

    常見的加密算法及其優(yōu)勢如下: AES(Advanced Encryption Standard): AES是一種對稱加密算法,采用分組密碼體制,支持128位、192位和256位密鑰長度。AES的優(yōu)勢
    的頭像 發(fā)表于 12-17 15:57 ?1019次閱讀

    常見的lvs負載均衡算法

    常見的lvs負載均衡算法包括輪詢(RR)、加權輪詢(WRR)、最小連接(LC)、加權最小連接(WLC)、基于局部性的最少鏈接(LBLC)、帶復制的LBLC(LBLCR)、目標地址散列(DH)、源地址
    的頭像 發(fā)表于 12-12 13:50 ?588次閱讀

    華納云:Chord算法如何管理節(jié)點間的聯(lián)系?

    Chord算法是一種分布式哈希表(DHT)協(xié)議,它通過構建一個環(huán)狀結構來管理節(jié)點間的聯(lián)系。以下是Chord算法如何管理節(jié)點間聯(lián)系的具體方式: 環(huán)狀結構: Chord算法將所有節(jié)點和鍵
    發(fā)表于 11-08 16:03

    如何提升SoC的安全性

    進行數字簽名。Bootloader在啟動時使用存儲在芯片中的公鑰驗證簽名,以確保固件的真實性和完整性。通過哈希算法(如SHA-256)計算固件的哈希值,并與預先存儲的正確哈希值進行比較
    的頭像 發(fā)表于 10-21 14:19 ?786次閱讀

    什么是默克爾樹(Merkle Tree)?如何計算默克爾根?

    01 默克爾樹的概念 默克爾樹(Merkle Tree)是一種特殊的二叉樹,它的每個節(jié)點都存儲了一個數據塊的哈希值。哈希值是一種可以將任意長度的數據轉換為固定長度的字符串的算法,它具有唯一性和不可
    的頭像 發(fā)表于 09-30 18:22 ?2364次閱讀
    什么是默克爾樹(Merkle Tree)?如何計算默克爾根?

    開源物聯(lián)網技術--哈希算法MD5加密功能技術分享

    MD5(Message-Digest Algorithm 5)是一種常用的哈希函數,通常用于數據加密和安全校驗等場合。MD5 算法可以將任意長度的消息輸入計算出一個固定長度的摘要,其生成的摘要具有
    的頭像 發(fā)表于 09-21 09:57 ?2711次閱讀
    開源物聯(lián)網技術--<b class='flag-5'>哈希</b><b class='flag-5'>算法</b>MD5加密功能技術分享

    艾體寶洞察 一文讀懂最新密碼存儲方法,揭秘密碼存儲常見誤區(qū)!

    本篇文章將引入并介紹密碼存儲中的基石,關于密碼哈希、鹽加密(Salting)、密鑰派生函數(KDF)的原理及其應用,揭示密碼存儲中的常見誤區(qū),并分享一系列安全實踐。
    的頭像 發(fā)表于 09-14 17:37 ?758次閱讀
    艾體寶洞察 一文讀懂最新密碼存儲方法,揭秘密碼存儲<b class='flag-5'>常見</b>誤區(qū)!

    SiRider S1芯擎工業(yè)開發(fā)板測評+1.防止黑客入侵通信監(jiān)控系統(tǒng)(PSA)

    說到AI,SiRider S1可不含糊。它搭載了安謀科技的“周易”NPU,這可是專為神經網絡設計的“大腦”。了它,SiRider S1就像擁有了超能力,能輕松應對各種復雜的人工智能算法。無論是
    發(fā)表于 09-08 21:58

    常見的觸發(fā)器件哪些

    常見的觸發(fā)器件在多個領域不同的定義和應用,但基于問題背景,我們可以主要從電子工程和火災自動報警系統(tǒng)兩個角度來探討。
    的頭像 發(fā)表于 08-30 10:47 ?2858次閱讀

    ESP8266如何避免固件損壞?

    我們需要在固件下載中采用強大的固件升級方法,我們知道在固件下載中有一個示例。 例子/at_upgrade.c 對于該示例,我們一個問題: 如何避免損壞的bin文件? 因為如果惡意用戶將損壞
    發(fā)表于 07-19 06:00