皮皮网

【木鱼APP源码】【辅助源码在云端】【飞鹰论坛源码下载】java 3des 源码

时间:2024-11-23 08:25:45 分类:知识 来源:bootstrap web源码下载

1.如何用Java进行3DES加密解
2.3des java (3key模式)
3.Java 接口数据加密和解密
4.java 进行3DES 加密解密

java 3des 源码

如何用Java进行3DES加密解

       æœ€è¿‘一个合作商提出使用3DES交换数据,本来有现成的代码,可惜只有.net版本,服务器都是Linux,而且应用都是Java。于是对照提供的代码改了一个Java的版本出来,主要是不熟悉3DES,折腾了一天,终于搞定。

       æ‰€è°“3DES,就是把DES做三次,当然不是简单地DES DES DES就行了,中途有些特定的排列。

       åœ¨ç½‘上搜索了一下3DES,找到很少资料。找到GNU Crypto和Bouncy Castle两个Java扩充包,里面应该有3DES的实现吧。

       ä»ŽGNU Crypto入手,找到一个TripleDES的实现类,发现原来3DES还有一个名字叫DESede,在网上搜索TripleDES和DESede,呵呵,终于发现更多的资料了。

       Java的安全API始终那么难用,先创建一个cipher看看算法在不在吧

       Cipher cipher = Cipher.getInstance("DESede");

       å¦‚果没有抛异常的话,就证明这个算法是有效的

       çªç„¶æƒ³çœ‹çœ‹JDK有没有内置DESede,于是撇开Crypto,直接测试,发现可以正确运行。在jce.jar里面找到相关的类,JDK内置了。

       äºŽæ˜¯ç›´æŽ¥ç”¨DES的代码来改&测试,最后代码变成这样

       SecureRandom sr = new SecureRandom();

       DESedeKeySpec dks = new DESedeKeySpec(PASSWORD_CRYPT_KEY.getBytes());

       SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESede");

       SecretKey securekey = keyFactory.generateSecret(dks);

       Cipher cipher = Cipher.getInstance("DESede");

       cipher.init(Cipher.ENCRYPT_MODE,木鱼APP源码 securekey, sr);

       return new String(Hex.encodeHex(cipher.doFinal(str.getBytes())));

       éœ€è¦ç•™æ„çš„是,要使用DESede的Spec、Factory和Cipher才行

       äº‹æƒ…还没完结,合作商给过来的除了密钥之外,还有一个IV向量。搜索了一下,发现有一个IvParameterSpec类,于是代码变成这样

       SecureRandom sr = new SecureRandom();

       DESedeKeySpec dks = new DESedeKeySpec(PASSWORD_CRYPT_KEY.getBytes());

       SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESede");

       SecretKey securekey = keyFactory.generateSecret(dks);

       IvParameterSpec iv = new IvParameterSpec(PASSWORD_IV.getBytes());

       Cipher cipher = Cipher.getInstance("DESede");

       cipher.init(Cipher.ENCRYPT_MODE, securekey, iv, sr);

       return new String(Hex.encodeHex(cipher.doFinal(str.getBytes())));

       ä½†æ˜¯ï¼Œè¿è¡ŒæŠ¥é”™äº†

       java.security.InvalidAlgorithmParameterException: ECB mode cannot use IV

       ECB是什么呢?代码完全没有写ECB什么的

       åˆä¸Šç½‘搜索,结果把DES的来龙去脉都搞清楚了

       blogs.com/lianghuilin/archive////3des.html

copyright © 2016 powered by 皮皮网   sitemap