91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

什么是哈希?

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

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

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

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

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

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

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

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

常見哈希算法

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

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

例如計(jì)算

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

得到的結(jié)果將是

“db8305d71a9f2f90a3e118a9b49a4c381d2b80cf7bcef81930f30ab1832a3c90”。

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

審核編輯:符乾江

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

    關(guān)注

    7

    文章

    4020

    瀏覽量

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

    關(guān)注

    8

    文章

    685

    瀏覽量

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

    關(guān)注

    22

    文章

    2124

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    OPC UA 服務(wù)端用戶認(rèn)證的底層邏輯:哈希與加鹽應(yīng)用詳解

    用戶信息至關(guān)重要。本文不涉及復(fù)雜的代碼實(shí)現(xiàn),而是通過(guò)分析典型服務(wù)端配置文件中的相關(guān)機(jī)制,闡述哈希算法(SHA-256)與加鹽(Salt)機(jī)制在OPCUA登錄環(huán)節(jié)的具
    的頭像 發(fā)表于 01-15 17:29 ?157次閱讀
    OPC UA 服務(wù)端用戶認(rèn)證的底層邏輯:<b class='flag-5'>哈希</b>與加鹽應(yīng)用詳解

    深入淺出GMSSL:掌握SM2、SM3、SM4國(guó)密算法的高效實(shí)踐

    隨著國(guó)家信息安全戰(zhàn)略的推進(jìn),國(guó)密算法在各類安全系統(tǒng)中的應(yīng)用日益廣泛。GMSSL作為支持國(guó)密標(biāo)準(zhǔn)的重要工具庫(kù),為開發(fā)者提供了SM2(非對(duì)稱加密)、SM3(哈希算法)和SM4(對(duì)稱加密)的完整實(shí)現(xiàn)。本文
    的頭像 發(fā)表于 12-12 18:20 ?629次閱讀
    深入淺出GMSSL:掌握SM2、SM3、SM4國(guó)密<b class='flag-5'>算法</b>的高效實(shí)踐

    C語(yǔ)言的常見算法

    # C語(yǔ)言常見算法 C語(yǔ)言中常用的算法可以分為以下幾大類: ## 1. 排序算法 ### 冒泡排序 (Bubble Sort) ```c void bubbleSort(int
    發(fā)表于 11-24 08:29

    CW32F030C8T6數(shù)字簽名實(shí)戰(zhàn)

    加密庫(kù)(如mbedTLS、WolfSSL)實(shí)現(xiàn)數(shù)字簽名。常見算法包括RSA、ECDSA。 2.2 基于SHA和RSA的簽名流程 生成哈希值:使用SHA-256對(duì)固件計(jì)算哈希值。 私鑰
    發(fā)表于 11-19 08:03

    CW32F030C8T6數(shù)字簽名的實(shí)戰(zhàn)指南

    加密庫(kù)(如mbedTLS、WolfSSL)實(shí)現(xiàn)數(shù)字簽名。常見算法包括RSA、ECDSA。 2.2 基于SHA和RSA的簽名流程 生成哈希值:使用SHA-256對(duì)固件計(jì)算哈希值。 私鑰
    發(fā)表于 11-18 06:35

    Molex OTS零哈希電纜組件技術(shù)解析與應(yīng)用指南

    Molex現(xiàn)成(OTS)零哈希電纜組件是標(biāo)準(zhǔn)分立式電線電纜組件,設(shè)計(jì)用于應(yīng)對(duì)電子設(shè)備日益縮小的挑戰(zhàn)。這些電纜組件提供節(jié)省空間的薄型解決方案,具有創(chuàng)新的雙點(diǎn)接觸特性,2、4、6和8電路尺寸可供選擇
    的頭像 發(fā)表于 11-17 16:44 ?750次閱讀

    通過(guò)優(yōu)化代碼來(lái)提高M(jìn)CU運(yùn)行效率

    選擇時(shí)間復(fù)雜度低的算法。 根據(jù)訪問(wèn)模式選擇數(shù)據(jù)結(jié)構(gòu)。頻繁查找用哈希表,有序數(shù)據(jù)用二叉樹等。 查表法:對(duì)于復(fù)雜的數(shù)學(xué)計(jì)算(如sin, log),或者協(xié)議解析,預(yù)先計(jì)算好結(jié)果存于數(shù)組中,用空間換時(shí)間
    發(fā)表于 11-12 08:21

    MD5信息摘要算法實(shí)現(xiàn)一(基于蜂鳥E203協(xié)處理器)

    命名為“Q”,則message_var=Q[(32*i):(32*i+31)]。 4、哈希運(yùn)算(Hash Operation) 此部分為MD5算法的核心。MD54組主循環(huán),每組的主循環(huán)需要進(jìn)行16輪
    發(fā)表于 10-30 07:18

    哪些常見的AI算法可以用于裝置數(shù)據(jù)的異常檢測(cè)?

    (如邊緣 / 云端)。以下按 算法類型分類 ,詳細(xì)介紹常見 AI 算法的原理、適用場(chǎng)景、優(yōu)缺點(diǎn)及裝置數(shù)據(jù)適配性: 一、無(wú)監(jiān)督式異常檢測(cè)算法(主流選擇) 裝置數(shù)據(jù)多為 無(wú)標(biāo)注數(shù)據(jù) (僅記
    的頭像 發(fā)表于 09-18 09:27 ?801次閱讀
    <b class='flag-5'>有</b>哪些<b class='flag-5'>常見</b>的AI<b class='flag-5'>算法</b>可以用于裝置數(shù)據(jù)的異常檢測(cè)?

    【上海晶珩睿莓1開發(fā)板試用體驗(yàn)】4、Coremark性能測(cè)試

    是為嵌入式和通用 CPU 提供一個(gè)可重復(fù)、可比較的基線測(cè)試,側(cè)重于核心算法性能(整數(shù)運(yùn)算、控制流、哈希、循環(huán)與內(nèi)存訪問(wèn)模式),而不是系統(tǒng)級(jí)或浮點(diǎn)性能。 本次評(píng)測(cè)的是搭載 Amlogic S905X4(4
    發(fā)表于 08-18 22:18

    緩存之美:從根上理解 ConcurrentHashMap

    本文將詳細(xì)介紹 ConcurrentHashMap 構(gòu)造方法、添加值方法和擴(kuò)容操作等源碼實(shí)現(xiàn)。 ConcurrentHashMap 是線程安全的哈希表,此哈希表的設(shè)計(jì)主要目的是在最小化更新操作對(duì)哈希
    的頭像 發(fā)表于 08-05 14:48 ?579次閱讀

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

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

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

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

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

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

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

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