欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8358|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32F4芯片MD5的結(jié)果值為什么總為0?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:98618 發(fā)表于 2015-12-7 02:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
整理:MilerShao

         最近連續(xù)幾個人反映STM32F4系列芯片的MD5結(jié)果問題,都反映在使用STM32F4的庫函數(shù)做MD5計算時得出的結(jié)果均為0,甚為迷惑不解。后來我發(fā)現(xiàn)網(wǎng)絡(luò)上也有這方面的咨詢,基本都沒有回復(fù)結(jié)果。

    所謂MD5,它是Message Digest Algorithm MD5(中文名為消息摘要算法第五版)的簡稱。主要用于確保信息傳輸完整一致。是計算機或微處理器廣泛使用的雜湊算法之一(又稱摘要算法哈希算法)。將數(shù)據(jù)(如各類文件信息)通過一系列運算后得出另一固定長度的信息,仿佛從原始信息中生成一部分摘要出來。MD5的前身還有MD2、MD3MD4

    利用哈希算法生成MD5信息的大致原理就是對一堆原始信息經(jīng)過哈希算法后生成一個固定長度而并無規(guī)律的數(shù)據(jù)信息。這個信息可以用來檢測原始信息的完整性,進而達到保證原始信息的完整和安全性。

    比如下載服務(wù)器針對一個文件預(yù)先提供一個MD5值,用戶下載完該文件后,用戶重新使用相同算法計算下載文件的MD5值,通過比較這兩個值是否相同,來判斷下載的文件是否出錯,或者說下載的文件是否被篡改了。再比方說用戶在銀行設(shè)置操作密碼,其實存進銀行系統(tǒng)的并不是你敲入的那幾個數(shù)字,而是根據(jù)輸入的密碼數(shù)字生成的類似MD5的數(shù)據(jù)信息,跟你鍵入的密碼數(shù)字并無直接的或有規(guī)律的關(guān)系。所以你不用擔(dān)心銀行工作人員通過內(nèi)部系統(tǒng)看到你輸入的是什么密碼。

    好,言歸正傳。回到剛才STM32F4芯片MD5計算值為0的話題。我之前也沒用過STM32做MD5,印象中STM32F4系列是帶HASH處理器,支持MD5的。既然人家問STM32F4的芯片,那我就順手找了塊STM32F407 DISCOVERY[探索板]做測試。下載了SMT32F4系列最新傳統(tǒng)固件庫,下載最新版本好處不必多說。
 

ST官方提供的固件庫里面有現(xiàn)存的關(guān)于HASH的工程項目。
   

        我使用上面橢圓圈里的工程文件,稍加調(diào)整,運行工程。結(jié)果跟客戶說的一樣,MD5的輸出值全0. 結(jié)合ST MCU參考手冊和代碼前前后后看了下,也沒發(fā)現(xiàn)啥問題。

        想到ST 官方不是有另外一個CUBE庫嗎?立即打開建立了工程,編譯、運行一路正常。遺憾的是MD5結(jié)果還是0.

        潛意識告訴我,手里的STM32F405 DISCOVERY上面的主芯片是STM32F407VG,會不會不支持HASH,或者說他根本不帶HASH處理器?心想STMF4系列里面,STM32F429算是比較高端的了,它總該帶HASH吧【自以為是在作怪了。。。】。

        又找了個STM32F429的DISCOVERY學(xué)習(xí)板,搭建工程測試,效果照舊。到此,只得去找芯片的數(shù)據(jù)手冊做確認。確認后發(fā)現(xiàn)STM32F429、STM32F407芯片都不帶HASH 處理器,看來MD5結(jié)果為0就不難理解了。到此問題答案也算出來了。

 
 

        為了保險起見,還是找了顆帶HASH的STM32芯片測試了下,測試結(jié)果果真不再總為0了。如果修改相關(guān)輸入信息,MD5值也立即改變。有興趣的人可以玩玩,上面的兩副圖是2次MD5的結(jié)果,我只是把第一種情形的輸入數(shù)字改了一個字符,那MD5結(jié)果就大相徑庭。

從上面的分析和實踐看來,客戶反映的MD5結(jié)果總為0是因為所使用的32F4芯片根本不帶HASH處理器所致。后來進一步跟客戶溝通也確認他使用的F4芯片是不帶HASH功能的。

        那對于STM32F4系列哪些帶HASH處理器,可以用來做MD5的應(yīng)用呢?相關(guān)芯片是否支持HASH,各芯片數(shù)據(jù)手冊里一定有介紹,在手冊的首頁就有提。順便提醒下,盡量看英文手冊,或者中英結(jié)合看,不建議英文原版扔一邊只看中文。

        我這里大致整理下。下圖中紅色圓圈圈出來的芯片都帶HASH,可以做MD5應(yīng)用。

 

 

        其實,除了STM32F4系列外,stm32f2系列也支持加密處理,帶HASH處理器。

        小結(jié)下:STM32系列眾多,即使某個系列,比方STM32F4系列,也分些子塊。整體上單個系列的硬件管腳兼容性很好,資源和功能方面整體上是一致的,但不同子系列或型號間還是有些差異。這些細微差異往往在芯片數(shù)據(jù)手冊上都會有體現(xiàn),作為工程開發(fā)人員,對你關(guān)注的資源或功能如果能事先做些確認比較好,否則無意中可能自己給自己挖坑了。

                  【拋磚引玉 旨在交流,如有錯疏 歡迎賜教】

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

無效樓層,該帖已經(jīng)被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表