我是一些數據加密的新手。我採用了數據加密技術,並且主要發現了md5和SHA算法。您認爲哪種技術最適合數據存儲/安全性,爲什麼?我應該使用哪種數據加密技術?
0
A
回答
5
MD5和SHA是哈希函數,它們從一堆數據中創建指紋 - 固定長度表示。例如,它們被廣泛用於檢查許多開源產品的iso鏡像下載的一致性,但這意味着您可以使用它們從任意字節中選擇指紋。所以他們不加密。
如果你想加密,你應該檢查加密算法。現在我認爲最可行的是AES(高級加密標準),如果你尋找對稱加密算法(例如,加密和解密的密鑰相同或容易計算的密鑰)或RSA,如果你尋找不對稱的(你有2鍵 - 公共和私人,並從公共計算私人密鑰是艱鉅的任務)。
如果您即將創建數字簽名,您可能需要檢查諸如DSA(數字簽名算法)和ECDSA(橢圓曲線上的DSA)之類的東西。請注意,非對稱算法可以處理擴展精度的數字 - 比如512,1024,2048位等等。你需要特殊的庫來處理這些數字。如果你使用C++,我可以推薦你使用Crypto ++。爲其他語言找到類似的東西。
我希望這對你有用。
0
如果您的數據是密碼,並且您想將其存儲在某個地方,請使用MD5
或SHA
散列。 這些有兩個好處。
- 哈希無法解密恢復舊值,這樣你的密碼永遠不會將即使你對某一:)
- 特定字符串的哈希將提供密碼的MD5/SHA哈希破解總是相同的,所以你可以比較基於哈希的密碼。
AES:
- 對稱算法,以便更快
- 使用帶有PKCS5Padding和CBC模式
- 始終將IV
- 對稱的,因此,你需要在你的解密,所以你加密的文本相同的密鑰根本無法共享密鑰。
RSA
- PKI基礎設施交換密鑰
- 慢
還有其他的算法也如DES(不是最安全),3DES(通常被稱爲TRIPPLE DES-不夠與DES相比是安全的)
相關問題
- 1. 我應該使用哪種技術來加密/解密MS Access數據庫文件中的數據?
- 2. 10。我應該使用哪些技術?
- 3. 我應該在dotnet中使用哪種依賴注入技術?
- 4. 我應該使用哪種SCM技術? Subversion或Git?
- 5. 我應該使用哪種聚類技術?
- 6. 我應該使用哪種技術在iOS上繪圖?
- 7. 我應該使用哪種技術應用於聲明感知應用程序
- 8. 我應該使用哪種技術來創建新應用程序?
- 9. 我應該使用哪種技術從iPhone中使用.NET Web服務?
- 10. 我應該選擇哪種技術用於3d globe web應用程序
- 11. 如何啓動smarty php和我應該使用或下載哪種技術?
- 12. 我應該在廣泛的環境中使用哪種陰影技術?
- 13. 我應該使用哪種技術來公開服務器文件系統?
- 14. 我應該使用哪種xml技術從xml文件中提取字段
- 15. Android上使用哪種webservice技術?
- 16. apache php使用哪種緩存技術
- 17. 2048使用哪種渲染技術?
- 18. GMail使用哪種前端技術?
- 19. Moodle加密先前使用過MD5。現在使用哪種技術?
- 20. 如何查找網站使用哪種數據庫技術。
- 21. 哪種技術更高效?
- 22. 哪種技術更好?
- 23. 哪種報告技術?
- 24. Web應用程序:我應該使用哪種技術才能使用90%鍵盤的網絡應用程序?
- 25. 哪種技術在這三種技術中速度會很快?
- 26. 我應該使用哪種技術在我的加載項DLL中彈出一個簡單的表單?
- 27. 我的瀏覽器應用程序應使用哪種3D技術?
- 28. 使用哪種技術製作YouTube,如應用程序
- 29. 應該使用哪種模式或技術來生成事件報告?
- 30. 應該使用哪種技術來測試PHPUnit中的抽象類功能?
MD5和SHA都不加密數據。谷歌更多。 – Thilo
那些不是加密算法。那些是哈希算法。 IIRC AES是一個非常好的當前加密算法。 – Lalaland
所以你需要散列密碼或加密數據? – CloudyMarble