2012-08-28 101 views
0

我是一些數據加密的新手。我採用了數據加密技術,並且主要發現了md5和SHA算法。您認爲哪種技術最適合數據存儲/安全性,爲什麼?我應該使用哪種數據加密技術?

+0

MD5和SHA都不加密數據。谷歌更多。 – Thilo

+2

那些不是加密算法。那些是哈希算法。 IIRC AES是一個非常好的當前加密算法。 – Lalaland

+0

所以你需要散列密碼或加密數據? – CloudyMarble

回答

5

MD5和SHA是哈希函數,它們從一堆數據中創建指紋 - 固定長度表示。例如,它們被廣泛用於檢查許多開源產品的iso鏡像下載的一致性,但這意味着您可以使用它們從任意字節中選擇指紋。所以他們不加密。

如果你想加密,你應該檢查加密算法。現在我認爲最可行的是AES(高級加密標準),如果你尋找對稱加密算法(例如,加密和解密的密鑰相同或容易計算的密鑰)或RSA,如果你尋找不對稱的(你有2鍵 - 公共和私人,並從公共計算私人密鑰是艱鉅的任務)。

如果您即將創建數字簽名,您可能需要檢查諸如DSA(數字簽名算法)和ECDSA(橢圓曲線上的DSA)之類的東西。請注意,非對稱算法可以處理擴展精度的數字 - 比如512,1024,2048位等等。你需要特殊的庫來處理這些數字。如果你使用C++,我可以推薦你使用Crypto ++。爲其他語言找到類似的東西。

我希望這對你有用。

0

如果您的數據是密碼,並且您想將其存儲在某個地方,請使用MD5SHA散列。 這些有兩個好處。

  1. 哈希無法解密恢復舊值,這樣你的密碼永遠不會將即使你對某一:)
  2. 特定字符串的哈希將提供密碼的MD5/SHA哈希破解總是相同的,所以你可以比較基於哈希的密碼。

AES:

  1. 對稱算法,以便更快
  2. 使用帶有PKCS5Padding和CBC模式
  3. 始終將IV
  4. 對稱的,因此,你需要在你的解密,所以你加密的文本相同的密鑰根本無法共享密鑰。

RSA

  1. PKI基礎設施交換密鑰

還有其他的算法也如DES(不是最安全),3DES(通常被稱爲TRIPPLE DES-不夠與DES相比是安全的)

相關問題