欢迎来到天天文库
浏览记录
ID:21934758
大小:30.79 KB
页数:7页
时间:2018-10-25
《java 加密解密之对称加密算法desede》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java加密解密之对称加密算法DESede本文转自网络DESede即三重DES加密算法,也被称为3DES或者TripleDES。使用三(或两)个不同的密钥对数据块进行三次(或两次)DES加密(加密一次要比进行普通加密的三次要快)。三重DES的强度大约和112-bit的密钥强度相当。通过迭代次数的提高了安全性,但同时也造成了加密效率低的问题。正因DESede算法效率问题,AES算法诞生了。 (详见: Java加密解密之对称加密算法AES ) 到目前为止,还没有人给出攻击三重DES的有效方法。对其密钥空间中密钥进行蛮干搜索,那么由于空间太大,这实际上是不可行的。若用差分攻击的
2、方法,相对于单一DES来说复杂性以指数形式增长。 三重DES有四种模型(a)DES-EEE3,使用三个不同密钥,顺序进行三次加密变换。(b)DES-EDE3,使用三个不同密钥,依次进行加密-解密-加密变换。(c)DES-EEE2,其中密钥K1=K3,顺序进行三次加密变换。(d)DES-EDE2,其中密钥K1=K3,依次进行加密-解密-加密变换。 JDK对DESede算法的支持密钥长度:112位/168位工作模式:ECB/CBC/PCBC/CTR/CTS/CFB/CFB8toCFB128/OFB/OBF8toOFB128填充方式:Nopadding/PKCS5Padding
3、/ISO10126Padding/ 工作模式和填充方式请参考: JAVA加密解密基础 十六进制工具类Hex.java,见: javabyte数组与十六进制字符串互转 DESede加密解密的java实现:DESede .javaJava代码 1.import java.security.Key; 2. 3.import javax.crypto.Cipher; 4.import javax.crypto.KeyGenerator; 1.import javax.crypto.SecretKey; 2.import javax.crypt
4、o.SecretKeyFactory; 3.import javax.crypto.spec.DESedeKeySpec; 4. 5./** 6. * DESede Coder 7. * secret key length: 112/168 bit, default: 168 bit 8. * mode: ECB/CBC/PCBC/CTR/CTS/CFB/CFB8 to CFB128/OFB/OBF8 to OFB128 9. * padding: Nopadding/PKCS5Padding/ISO10126Paddin
5、g/ 10. * @author Aub 11. * 12. */ 13.public class DESedeCoder { 14. 15. /** 16. * 密钥算法 17. */ 18. private static final String KEY_ALGORITHM = "DESede"; 19. 20.// private static final String DEFAULT_CIPHER_ALGORITHM = "DESede/ECB/PKCS5Padding"; 21. private
6、static final String DEFAULT_CIPHER_ALGORITHM = "DESede/ECB/ISO10126Padding"; 22. 23. /** 24. * 初始化密钥 25. * 26. * @return byte[] 密钥 27. * @throws Exception 28. */ 29. public static byte[] initSecretKey() throws Exception{ 30. //返回生成指定算法的秘密密钥的 KeyG
7、enerator 对象 31. KeyGenerator kg = KeyGenerator.getInstance(KEY_ALGORITHM); 32. //初始化此密钥生成器,使其具有确定的密钥大小 33. kg.init(168); 34. //生成一个密钥 35. SecretKey secretKey = kg.generateKey(); 36. return secretKey.getEncoded(); 37.
此文档下载收益归作者所有