上http://www.bouncycastle.org/ 下载那个bouncy castle crypto API, 把
它的jar包加进来以后, 用以下一段很短的代码就可以实现IDEA加密了, good luck!
import org.bouncycastle.crypto.BufferedBlockCipher;
import org.bouncycastle.crypto.CipherParameters;
import org.bouncycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.engines.IDEAEngine;
import org.bouncycastle.util.encoders.Base64;
/**
* User: wooce
* Date: 2003-9-10
* Time: 10:36:05
*/
public class IDEAEncrypt {
private BufferedBlockCipher cipher;
private String key;
public IDEAEncrypt(String key) {
cipher = new BufferedBlockCipher(new IDEAEngine());
this.key = key;
}
public byte[] encrypt(String str) {
CipherParameters param = new KeyParameter(key.getBytes());
cipher.init(true, param);
int len = str.length();
if (str.length() % 8 > 0)
len -= str.length() % 8;
byte[] cleartext = new byte[str.length()];
System.arraycopy(str.getBytes(), 0, cleartext, 0, str.length());
byte[] out = new byte[cleartext.length];
if (len > 0)
cipher.processBytes(cleartext, 0, cleartext.length, out, 0);
if (str.length() % 8 > 0) {
int j = 0;
for (int i = str.length() - 1; j < str.length() % 8; i--) {
j++;
out[i] = (byte) (cleartext[i] ^ 197);
}
}
byte[] finalOut = Base64.encode(out);
return finalOut;
}
}
分享到:
相关推荐
本文介绍了在JAVA环境下如何实现IDEA对称加密算法。由于电子商务和电子政务的普及,安全加密技术在其中应用非常广泛,对安全加密技术的要求也很高。目前在JAVA环境下实现IDEA加密具有很多的优势,因为JAVA是基于面向...
### Java 环境下IDEA加密算法及数字签名编程详解 #### 一、加密的必要性和可探究性 随着互联网技术的飞速发展,尤其是电子商务和电子政务的普及,安全加密技术的应用变得越来越广泛。在这样的背景下,对加密技术的...
《2022年基于Java的IDEA加密算法Java教程》 在信息技术日益发达的今天,加密算法成为保障网络安全、尤其是电子商务领域信息安全的关键技术。本文主要探讨了在Java环境中如何运用IDEA(International Data ...
“能实现idea加密解密基本算法,使用java编程,容易看懂程序”,这表明压缩包内可能包含了一段用 Java 编写的代码,这段代码实现了 IDEA(可能指的是 International Data Encryption Algorithm,一种常见的对称加密...
基于Java的IDEA加密算法探讨 本文探讨了基于Java的IDEA加密算法的应用,讨论了数据加密的概念、加密技术和IDEA数据加密算法的原理。同时,文章还介绍了Java密码体系和Java密码扩展的设计原则和实现方法。 1. 数据...
IDEA是一种由8个相似圈(Round)和一个输出变换(Output Transformation)组成的迭代算法。IDEA的每个圈都由三种函数:模(216+1)乘法、模216加法和按位XOR组成。
目前在JAVA环境下实现IDEA 加密具有很多的优势,因为JAVA 是基于面向对象的编程语言, 并且由于它的平台无关性能被大量应用于 Internet 的开发。密码学中的加密和数字签名是一种与消息认证码结合使 用以确保消息...
IDEA(International Data Encryption Algorithm,国际数据加密算法)是一种对称密钥加密算法,由瑞士联邦理工学院的Lai Xuejia和Martin Hellman在1990年提出。它设计初衷是作为DES(Data Encryption Standard)的一...
在压缩包中的“IDEA加密算法实现代码”可能是用某种编程语言(如Python、Java、C++等)编写的IDEA加密和解密函数,供学习者参考和实践。通过阅读和理解代码,可以更深入地了解IDEA的工作原理,并且能够实际应用到...
IDEADemo: 演示了如何使用IDEA加密算法进行加密和解密,包括密钥生成和转换。 MD5Demo: 提供了一个MD5哈希算法的实现,展示了如何计算字符串的MD5值。 RSADemo: 展示了RSA非对称加密算法的使用,包括密钥生成、...
Lai 和Massey 在1992 年进行了改进强化了抗差分分析的能力改称为IDEA 它也是对64bit大小的数据块加密的分组加密算法密钥长度为128位它基于“相异代数群上的混合运算”设计思想算法用硬件和软件实现都很容易且比DES在...
IDEA加密算法原理.doc
在Java环境中实现IDEA加密有多个关键步骤和知识点: 1. **JCA(Java Cryptography Architecture)和JCE(Java Cryptography Extension)**:Java提供了一套完整的加密框架,即JCA,它包含了各种加密算法的支持。JCE...
Java平台提供了丰富的加密算法支持,包括但不限于: - **DES**:Data Encryption Standard,一种对称加密算法,虽然现在已被认为不太安全,但在某些场景下仍有应用。 - **3DES**:Triple DES,通过三次DES加密提高...
此文档提供了IDEA加密算法的JAVA版源代码,对于理解加密算法原理和实现,以及在Java项目中应用IDEA加密具有重要意义。 IDEA算法基于128位的密钥,它将64位的数据块进行16轮迭代操作,每轮包含四个不同的子函数:...
在JAVA环境中实现IDEA加密算法时,需要解决以下关键问题: 1. **算法实现**:将IDEA算法的数学模型转换为JAVA代码,包括所有的轮次操作、密钥调度等。 2. **性能优化**:确保算法的执行效率足够高,特别是在处理...
Idea加密算法的核心是16轮的运算,每一轮都包含四个不同的操作:异或(XOR)、线性变换(Linear Transformation)、替代(Substitution)和置换(Permutation)。加密流程大致如下: 1. **密钥扩展**:将128位的...
Oracle环境下使用IDEA加密方法是Java开发者在处理敏感数据时常用的一种安全技术。IDEA(International Data Encryption Algorithm,国际数据加密算法)是一种高效且安全的对称加密算法,以其快速和强大的安全性在...