我必须使用Java或C#中的IDEA(国际数据加密算法)创建一个可以加密和解密文本文件的应用程序。我知道在Java中有一个内置的JCE(Java密码学扩展),但是如何进一步处理,有人请给我一些建议吗?
答案 0 :(得分:4)
无论出于何种原因都无法发表评论,所以我将此作为回复发布。
IDEA是一项专利算法,专利仅在2011年和2012年到期(取决于国家/地区)。它也不是最佳表现。因此,除非您要求使用IDEA,否则我建议您查看AES或RC4(ARCFOUR,因为RC4名称是注册商标)算法。 RC4速度更快,但在很大程度上取决于加密密钥的质量。
答案 1 :(得分:4)
大多数(并非绝对全部)开发框架都包括对标准加密算法的支持。事实上,使用标准化算法总是好的,因为它们是密码分析师最好的研究。 AES128 / 256是首选。 RC4密钥的最大长度以及IDEA密钥为128位;此外,它也是一种奇特的,可能不受某些框架的支持。
答案 2 :(得分:2)
您可以尝试使用BouncyCastle,它可用于Java和C#。但是,根据这个note,你需要为IDEA支持获得正确的jar(假设是Java):
从发布1.40开始实施 IDEA加密算法是 从常规jar文件中删除 一些用户的要求。罐子 名称仍为 -ext - 包括IDEA实施。
编辑(添加了指向示例的指针):
我没有尝试,但我认为DESExample可以适应你想做的事情,可能是用DESedeEngine
替换IDEAEngine
(和其他类似的)。 / p>
答案 3 :(得分:1)
到2012年,IDEA专利已过期。
我写了一个干净的open-source Java implementation of IDEA。
源代码内容文件的名称:
Idea.java The main IDEA encryption module
IdeaFileEncryption.java Encrypts or decrypts a file with IDEA
IdeaCmd.java Command-line interface for encrypting/decrypting files
TestIdeaVectors.java A test program that verifies this implementation against
the test vectors published in 1999
TestIdeaMath.java A test program for some of the math functions used in
the IDEA modules
信任此算法,就像您信任其作者一样。