有没有人在比较这些加密算法时有利有弊?
答案 0 :(得分:242)
使用AES。
更多细节:
因此,如有疑问,请使用AES。
请注意,分组密码是一个加密“块”(使用AES的128位数据块)的框。在加密可能长于128位的“消息”时,必须将消息拆分为块,并且实际进行拆分的方式称为mode of operation或“链接”。天真模式(简单拆分)称为ECB并存在问题。正确使用分组密码并不容易,而且比在AES或3DES之间进行选择更为重要。
答案 1 :(得分:24)
所有这些方案,除AES和Blowfish外,都有已知漏洞,不应使用 但是,Blowfish已被Twofish取代。
答案 2 :(得分:11)
所描述的加密方法是对称密钥块密码。
数据加密标准(DES)是前身,使用56位密钥加密64位块中的数据。每个块都是独立加密的,这是一个安全漏洞。
三重DES通过对每个块应用三个DES操作来扩展DES的密钥长度:使用密钥0进行加密,使用密钥1进行解密,使用密钥2进行加密。这些密钥可能是相关的。
在与传统商业产品和服务接口时,通常会遇到DES和3DES。
AES被认为是继承者和现代标准。 http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
我认为不鼓励使用Blowfish。
强烈建议您不要尝试实施自己的加密,而是使用GPG等高级实现来处理静态数据,或使用SSL / TLS传输数据。以下是有关加密漏洞http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/
的优秀且清醒的视频答案 3 :(得分:8)
AES是对称加密算法,而RSA是非对称(或公钥)加密算法。使用AES中的单个密钥进行加密和解密,同时在RSA中使用单独的密钥(公钥和私钥)。 128位AES密钥的强度大致相当于2600位RSA密钥。
答案 4 :(得分:4)
尽管TripleDESCryptoServiceProvider是一种安全且好的方法,但它太慢了。如果你想参考MSDN,你会建议你使用AES而不是TripleDES。请查看以下链接: http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledescryptoserviceprovider.aspx 你会在评论部分看到这个注意事项:
祝你好运注意强> 一种较新的对称加密算法,即高级加密 标准(AES)可用。考虑使用 AesCryptoServiceProvider类而不是 TripleDESCryptoServiceProvider类。使用 TripleDESCryptoServiceProvider仅用于与legacy兼容 应用程序和数据。
答案 5 :(得分:1)
答案 6 :(得分:0)
AES是目前公认的标准算法(因此称为高级加密标准)。
其余的不是。
答案 7 :(得分:0)
DES AES
Developed 1977 2000
Key Length 56 bits 128, 192, or 256 bits
Cipher Type Symmetric Symmetric
Block Size 64 bits 128 bits
Security inadequate secure
Performance Fast Slow