在這篇中我們將學習如何在傳輸過程中不竄改資料而達到安全目的.我們用的技術是雜湊演算法.雜湊值會驗證資料的完整性.接收到的資料的雜湊值可以和被傳出去的
資料的雜湊值進行比較,看它是否被竄改!
net框架中提供了下面這幾個主要的運用雜湊的類:
因為sha1現在已經被破譯,所以我們將使用md5cryptoserviceprovider 類生成雜湊值.
我們將建立乙個helper類來幫助我們用md5演算法建立和驗證雜湊值.這個類包含兩個方法:gethash()和verifyhash();gethash()方法接收乙個要被生成雜湊值的字串,並以位元組陣列型別返回這個竄的雜湊值.verifyhash()方法接收gethash()方法返回的雜湊值和要進行比較的字串,如果在傳輸過程中沒有被竄改這個方法將返加true,否則返回false;
public class md5hashhelper
public bool verifyhash(string message, byte hash)let's dissect the code step by step:讓我們一步步解釋:}return true;
}}
匯入命名空間:system.security.cryptography
gethash()方法接收乙個要被生成雜湊值的字串,並以位元組陣列型別返回這個竄的雜湊值.
在方法內部我們用utf8encoding類得到要被傳輸字串的位元組型別.
然後,我們建立md5cryptoserviceprovider類的例項,並且通過傳遞上一步建立的位元組呼叫這個例項的computehash()方法.
computehash()方法生成資料的雜湊值,並返回這個資料的雜湊值的陣列.
verifyhash()方法接收gethash()方法返回的雜湊值和要進行比較的字串,如果在傳輸過程中沒有被竄改這個方法將返加true,否則返回false;
在這個方法內我們再次用到了utf8encoding 類生成接收資料的字陣列.
然後我們用md5cryptoserviceprovider類的 computehash() 方法來運算雜湊值.
最後,我們用乙個迴圈檢查原字串的雜湊值和我們生成的有什麼不同.如果雜湊值匹配我們就能斷定資料沒被竄改過.
iOS高階4 動畫總結
1.基礎 逐幀 與 關鍵幀 逐幀動畫 類似於手繪翻頁方式,我們可以將這個水杯在每幀畫面中的位置一一找出來,這樣實現動畫的方式就叫作 逐幀動畫,我們需要處理動畫中的每一幀。我們一般在計算機上用 fps frames per second 即 每秒的幀數 來表示動畫的重新整理速度,基於螢幕的重新整理率等...
關於資料加密問題(4)
本文介紹rsa,aes加密方式。rsa是一種非對稱加密演算法,使用rsa加密需要一對金鑰 公鑰,私鑰,公鑰公開,私鑰只能自己知道。關於rsa存在兩種使用方式。aes是一種對稱加密方式,加密與解密使用同一種金鑰即可。1.公鑰加密私鑰解密 裝置a存在公鑰與私鑰,將公鑰開放給裝置b,b裝置需要傳送資料,使...
AES高階加密標準加密
ase加密和des加密的區別在於aes密匙傳入必須是16位字元長度而des密匙必須是8位字元長度,同樣最後8個byte位是效驗碼.如果需要實現其cbc加密模式的話,需要新增另外幾步.使用注釋的地方就是新增cbc加密後新增和修改的方法 加密演算法 algorithm mode padding 演算法 ...