我应该使用哪种数据加密技术?

时间:2012-08-28 05:38:29

标签: encryption md5 sha

我是数据加密的新手。我使用数据加密,主要是md5和SHA算法。您认为哪种技术最适合数据存储/安全?为什么?

2 个答案:

答案 0 :(得分:5)

MD5和SHA是散列函数,它们从一堆数据中创建指纹 - 固定长度表示。例如,它们被广泛用作检查许多开源产品的ISO映像下载一致性的方法,但这意味着您可以使用它们从任何字节选择中创建指纹。所以他们不加密。

如果要加密,则应检查加密算法。现在我认为最可行的是AES(高级加密标准),如果你寻找对称加密算法(例如,加密和解密的密钥相同或容易相互计算)或RSA,如果你寻找不对称(你有2个密钥 - 公共和私有,以及公共计算私钥是一项艰巨的任务。)

如果您要创建数字签名,您可能需要检查DSA(数字签名算法)和ECDSA(DSA over椭圆曲线)等内容。请注意,非对称算法在扩展精度的数字上工作 - 如512,1024,2048位等。您需要可以处理此类数字的特殊库。如果您使用C ++,我可以建议您尝试使用Crypto ++。找到类似其他语言的东西。

我希望这对你有用。

答案 1 :(得分:0)

如果您的数据是密码,并且您希望将其存储在某个位置,请使用MD5SHA哈希。 这些有两个优点。

  1. 哈希无法解密以恢复旧值,因此即使您向某人提供密码的MD5 / SHA哈希值,您的密码也永远不会被破解:)
  2. 特定字符串的哈希值始终相同,因此您可以根据哈希值比较密码。
  3. AES:

    1. 对称算法如此之快
    2. 与PKCS5Padding和CBC模式一起使用
    3. 始终存储IV
    4. 对称,因此您在解密加密文本时需要相同的密钥,因此您根本无法共享密钥。
    5. RSA

      1. PKI基础设施交换密钥
      2. 还有其他算法,如DES(不那么安全),3DES(通常称为Tripple DES-与DES相比安全性不够)