我是数据加密的新手。我使用数据加密,主要是md5和SHA算法。您认为哪种技术最适合数据存储/安全?为什么?
答案 0 :(得分:5)
MD5和SHA是散列函数,它们从一堆数据中创建指纹 - 固定长度表示。例如,它们被广泛用作检查许多开源产品的ISO映像下载一致性的方法,但这意味着您可以使用它们从任何字节选择中创建指纹。所以他们不加密。
如果要加密,则应检查加密算法。现在我认为最可行的是AES(高级加密标准),如果你寻找对称加密算法(例如,加密和解密的密钥相同或容易相互计算)或RSA,如果你寻找不对称(你有2个密钥 - 公共和私有,以及公共计算私钥是一项艰巨的任务。)
如果您要创建数字签名,您可能需要检查DSA(数字签名算法)和ECDSA(DSA over椭圆曲线)等内容。请注意,非对称算法在扩展精度的数字上工作 - 如512,1024,2048位等。您需要可以处理此类数字的特殊库。如果您使用C ++,我可以建议您尝试使用Crypto ++。找到类似其他语言的东西。
我希望这对你有用。
答案 1 :(得分:0)
如果您的数据是密码,并且您希望将其存储在某个位置,请使用MD5
或SHA
哈希。
这些有两个优点。
AES:
RSA
还有其他算法,如DES(不那么安全),3DES(通常称为Tripple DES-与DES相比安全性不够)