sm3算法的簡單介紹
轉自:https://blog.csdn.net/hugewaves/article/details/53765063
SM3算法也是一種哈希算法,中國國家密碼管理局在2010年發布,其名稱是SM3密碼雜湊算法,密碼管理局有該算法的詳細說明,可以到其網站下載。本文只是簡單的介紹這個算法,便於理解。
1、算法的本質
給數據加一個固定長度的指紋,這個固定長度就是256比特。
2、處理過程
第一步:填充,使填充後的數據的長度是512的整數倍
先在數據的最尾巴上加一個1;然後把原始數據的長度用64比特表示,放在最後面;再看看現在的數據的長度值離512的整數還差多少個,差多少個就填多少個0在加的這個1和64比特的長度之間。
第二步:分組
把填充後的信息按照512比特一個分組進行分組,如果分成了N組,就是b(0),b(1),,,b(N-1)
第三步:叠代壓縮得到最後的雜湊值(哈希值)
IV(n)=CF(IV(n-1),b(n-1))
如果信息分為N組,那麽IV(N)就是最後得到的雜湊值。
宏觀上算法就是這樣一個過程,在這個基礎上再去看具體的算法就比較容易了。
sm3算法的簡單介紹
相關推薦
RSYNC及其算法簡單介紹
rsync rsync算法現在的存儲系統,本身都具備很強的遷移以及備份策略,雖然還是基於網絡傳輸,有相對延遲,但是方便了不少。另外,現在使用的存儲系統,讀寫瓶頸的問題,也大都改為對象存儲。而我們那時候做文件存儲,最頭疼的就是數據遷移與異地備份。最好用<ku,bi>的同步工具就是rsync。【基礎介
sm3算法的簡單介紹
介紹 基礎上 tps .net n) 比特 固定 div 哈希 轉自:https://blog.csdn.net/hugewaves/article/details/53765063 SM3算法也是一種哈希算法,中國國家密碼管理局在2010年發布,其名稱是SM3密碼
算法和數據結構~各位排序算法的介紹與實現(C#)
index per 歸並 一次 集中 div lag 合並 如何 排序是指將元素集合按照規定的順序排列。通常有兩種排序方法,升序排列和降序排列。例如,對整數集{5,2,7,1}進行升序排列,結果為{1,2,5,7},對其進行降序排列結果為{7,5,2,1}。總的來說,排
木材加工(裸二分題)(附二分算法粗略介紹)
iostream clu scanf 題意 int 一個數 二分 範圍 col 看到旁邊的學弟也在做二分,就手賤2分鐘打了一道奇(sha)特(bi)二分題。 原題傳送門 好吧,做這道題是為了給新手一個教程 首先我們聊聊二分。 二分利用的也是分治思想 不懂分治思想的可以看看我
經典排序算法--簡單選擇排序
減少 pac 高效 str creat election pub 臨時 ack 算法簡介 簡單選擇排序是一種選擇排序。 選擇排序:每趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止。 白話理解 依然已排隊為例,在排隊時,有的老師
線性規劃算法原理介紹
算法 線性規劃 線性規劃定義:求滿足約束的最優目標,目標是變量的線性函數,約束是變量的相等或不等表達式。單純形算法1 松弛變量 為將不等式轉化為等式添加的非負變量 比如 將f(xi) >0 變成 xj= f(xi) ,那麽xj就是松弛變量主元操作(pivot)1 任意在目標函數中系數為正的基本變
若幹排序算法簡單匯總(一)
基本上 down 轉載 下載地址 後序 來看 分析 並且 復雜度 轉載請註明出處 http://blog.csdn.net/pony_maggie/article/details/35819279 作者:小馬 從題目看,首先
逆波蘭表達式(RPN)算法簡單實現
預處理 中綴表達式 trac 出棧 直接 bstr 總結 波蘭表達式 操作 算法分析: 一、預處理 給定任意四則運算的字符串表達式(中綴表達式),preDeal預先轉化為對應的字符串數組,其目的在於將操作數和運算符分離。 例如給定四則運算內的中綴表達式: String i
排序算法-簡單選擇排序
ace wid sim oid ogr pre threading inf aar 實現: using System; using System.Collections.Generic; using System.Linq; using System.Text; us
ComputeColStats UDF中 近似算法的介紹
算法一,前面的話表和列的統計信息對CBO的結果有著極大地影響,能夠高效和準確的收集統計信息是極其重要的。但高效和準確是矛盾的,更準確的統計信息往往需要更多的計算,我們能做的是在高效和準確之間找到更好的平衡。接下來的內容是關於目前在ComputeColStats中用的一些近似算法。二,收集的內容目前針對列主要會
哈希算法簡單回顧 + 設計RandomPool結構
比較 最大的 value one key 無限 self 存儲 重要 哈希回顧 比較重要的性質: 不可逆:當你知道x的HASH值,無法求出x; 無沖突:當你知道x,無法求出一個y, 使x與y的HASH值相同 1 # 哈希特征: 2 # 1.輸入無限 3 # 2.輸出
RSA加密算法簡單分析
提高 數學 program 算法 分解 簡單 學習 合數 class 預備知識 1)RSA是第一個比較完善的公開密鑰算法,它既能用於加密,也能用於數字簽名。RSA以它的三個發明者Ron Rivest, Adi Shamir, L
使用樸素貝葉斯算法簡單實現垃圾郵件過濾
垃圾郵件 相關性 得到 因此 block align 介紹 14. 影響 一、算法介紹 樸素貝葉斯法,簡稱NB算法,是貝葉斯決策理論的一部分,是基於貝葉斯定理與特征條件獨立假設的分類方法: 首先理解兩個概念: · 先驗概率是指根據以往經驗和分析得到的概率,它往往作為“由因求
chandy-lamport 分布式一致性快照 算法詳細介紹
left 能夠 alt ext 出現 site -a tex 分布式系 在一個分布式計算系統中,為了保證數據的一致性需要對數據進行一致性快照。Flink和spark在做流失計算的時候都借鑒了chandy-lamport算法的原理,這篇文章就是對chandy-lamport算
國密SM3算法在linux和windows平臺結果不一致問題
www 國密 from test star ipad define linu plus 什麽是sm3,是一種類似於sha256的哈希算法,是咱們國家的哈希標準算法; 最近在使用sm3算法時,同樣的一份數據,調用同樣的sm3接口,發現得到的結果是不一樣的;
內核中Boyer-Moore (BM)算法簡單註釋
一個 string sea 再次 字符 發現 got n) 生成 一、shift生成 這個算法之前大致看過一下,在grep中再次遇到了該算法,大致想了下它的具體實現,發現shift數組的計算並沒有像KMP中那樣的叠代過程,之後就在網絡上搜索了下這個算法的描述,主要是看sh
算法——堆的簡單介紹
wid 技術分享 其他 .com 圖片 width img span 簡單 一、什麽是堆? 堆:一種特殊的完全二叉樹結構。 大根堆:一棵完全二叉樹,滿足任一節點都比其孩子節點大; 小根堆:一棵完全二叉樹,滿足任一節點都比其他孩子節點小。 算法—
算法之--堆的簡單介紹
類型 lis 簡單介紹 com itl 調整 完全二叉樹 bsp 完全 算法之---堆的簡單介紹 一、堆的分類 大根堆:一棵完全二叉樹,滿足任一節點都比其孩子節點大小根堆:一棵完全二叉樹,滿足任一節點都比其孩子節點小 二、堆的向下調整性質 前提:節點的左右子樹都是
(最短路徑算法整理)dijkstra、floyd、bellman-ford、spfa算法模板的整理與介紹
void empty borde fast 默認 grand else 理解 scan 這一篇博客以一些OJ上的題目為載體。整理一下最短路徑算法。會陸續的更新。。。 一、多源最短路算法——floyd算法 floyd算法主要用於求隨意兩點間的最短路徑。也成
A*算法的理解與簡單實現
update for port 移動 ont 效率 print 估算 net 基本定義 一種尋路算法,特點是:啟發式的,效率高,基本思路比較簡單。 用途 尋路。在指定的地圖上,考慮到地圖上的移動代價,找到最優的路徑。 核心概念 開表,閉表,估值函數。 開表 開表,記錄了當前