我可以选择使用其中任何一个。
答案 0 :(得分:26)
答案 1 :(得分:9)
抱歉 - 三重DES不再被视为最佳做法。 AES只是一个更好的算法,所以如果你可以使用它,那么你应该。为了便于实施,请转到here。
我强烈建议您通过Wikipedia阅读TDES了解更多信息。报价是:
老实说,对于任何安全性很重要的应用来说,RC4都不是一个可接受的选择。“TDES正逐渐从使用中消失, 很大程度上取代了高级 加密标准(AES)。“
答案 2 :(得分:4)
同意 - DES基本上已过时,因此除非有充分的理由使用它,否则请使用AES。如果这不是一个选项,TDES将是更好的选择,除非你正在处理流数据(即,不能分成块的数据),那么RC4是可行的方式(在给定的选项之外)。
当然,我觉得我应该提一下......密码学真的,真的很难做对,如果你得到一些甚至有点错误的东西,即使是最强大的算法也可以轻易打破(参见,例如,较旧的Kerberos或WEP)。
答案 3 :(得分:2)
这可能不是最具信息性的答案,但在我与4年非常大的电信公司就业期间,Triple DES是所有敏感应用程序的加密标准,其他人根本不被允许。它是Triple DES或应用程序不上线。希望有所帮助。
答案 4 :(得分:2)
两者都很安全,很好...... RC4更快,所以如果这对你很重要......
在阅读了其他人的答案(这些都是正确的)之后,很明显它确实取决于你的背景。还有很多其他问题会影响您的决定。如果它只是需要傻瓜证明,如果它不是真正的敏感,你有很多数据和速度是因素,请选择RC4。
否则,如果你需要一些更安全,更容易实现的东西,或者你说“更难搞砸”:)那么就去3DES,据我记忆,这足够安全(!)到2020年-2030,或类似的东西。
答案 5 :(得分:2)
那是你唯一的选择吗?如果您可以使用AES(也称为Rijndael),请使用它。 DES很慢,现在被认为是过时的(AES是它的替代品)。 RC4糟透了,不要用它。它是一个流密码,但您可以使用分组密码,只需填充最后的数据块(Google PKCS#5填充方案)。 最近我只看到DES在嵌入式设备(固件)中使用,因为实现很简单并且使用的内存非常少。即使在JavaME中,您也可以使用AES。
答案 6 :(得分:2)
决定3DES和RC4之间的一个因素是语言支持。 Java本身不支持RC4,您需要获取一个开源库,如BouncyCastle来实现。 MS没有同样的挑战。