一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

掃碼添加小助手

加入工程師交流群

什么是哈希?

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

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

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

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

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

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

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

這些函數(shù)使用位運(yùn)算使得每一個字符都對最后的函數(shù)值產(chǎn)生影響。

常見哈希算法

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

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

例如計(jì)算

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

得到的結(jié)果將是

“db8305d71a9f2f90a3e118a9b49a4c381d2b80cf7bcef81930f30ab1832a3c90”。

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

審核編輯:符乾江

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

    關(guān)注

    7

    文章

    3929

    瀏覽量

    66304
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    671

    瀏覽量

    30354
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2119

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    哈希極化到零擁塞:主動路徑規(guī)劃在RoCE網(wǎng)絡(luò)中的負(fù)載均衡實(shí)踐

    智算集群對網(wǎng)絡(luò)性能,特別是高吞吐、低延遲和無損特性有著嚴(yán)苛要求,RoCE因此被廣泛應(yīng)用。然而,在主流Clos組網(wǎng)架構(gòu)下,傳統(tǒng)的ECMP路由機(jī)制存在天然的局限性,容易引發(fā)哈希極化問題,成為制約
    的頭像 發(fā)表于 07-21 17:27 ?250次閱讀
    從<b class='flag-5'>哈希</b>極化到零擁塞:主動路徑規(guī)劃在RoCE網(wǎng)絡(luò)中的負(fù)載均衡實(shí)踐

    一文詳解Nginx負(fù)載均衡

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

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

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

    DS28E54 1-Wire SHA3-256安全認(rèn)證器,兼容DS2431/DS28E07技術(shù)手冊

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

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

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

    加密算法在網(wǎng)絡(luò)安全中扮演什么角色?

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

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

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

    常見的lvs負(fù)載均衡算法

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

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

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

    如何提升SoC的安全性

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

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

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

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

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

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

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

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

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

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

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