3DES加解密工具类
来源:互联网 发布:手机搬家软件 编辑:程序博客网 时间:2024/06/05 03:56
package test;import java.security.Key;import javax.crypto.Cipher;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESedeKeySpec;import javax.crypto.spec.IvParameterSpec;import org.apache.commons.lang.StringUtils;import com.sun.org.apache.xml.internal.security.utils.Base64;/** * @author guoxk * * @version 创建时间2017年5月23日 * * 类描述:3DES加密工具类 */public class DES3 {private final static String encoding = "UTF-8";/** * 方法描述:3DES加密 * @author guoxk * @createTime 2017年5月23日 上午9:03:44 * * @param plainText 明文 * @param secretKey 密钥 * @param iv 加密向量 * @return String 密文 * @throws Exception */public static String encode(String plainText, String secretKey, String iv)throws Exception {Key deskey = null;DESedeKeySpec spec = new DESedeKeySpec(secretKey.getBytes());SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");deskey = keyfactory.generateSecret(spec);Cipher cipher = Cipher.getInstance("desede/CBC/PKCS5Padding");IvParameterSpec ips = new IvParameterSpec(iv.getBytes());cipher.init(Cipher.ENCRYPT_MODE, deskey, ips);byte[] encryptData = cipher.doFinal(plainText.getBytes(encoding));return Base64.encode(encryptData);}/** * 方法描述: 3DES解密 * @author guoxk * @createTime 2017年5月23日 上午9:04:37 * * @param encryptText 密文 * @param secretKey 密钥 * @param iv 加密向量 * @return String 明文 * @throws Exception */public static String decode(String encryptText, String secretKey, String iv)throws Exception {if (StringUtils.isBlank(encryptText) || StringUtils.isBlank(secretKey)) {return "";}Key deskey = null;DESedeKeySpec spec = new DESedeKeySpec(secretKey.getBytes());SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");deskey = keyfactory.generateSecret(spec);Cipher cipher = Cipher.getInstance("desede/CBC/NoPadding");IvParameterSpec ips = new IvParameterSpec(iv.getBytes());cipher.init(Cipher.DECRYPT_MODE, deskey, ips);byte[] decryptData = cipher.doFinal(Base64.decode(encryptText));return new String(decryptData, encoding).trim();}/** * 方法描述:测试方法 * @author guoxk * @createTime 2017年5月23日 上午9:12:24 * * @param args */public static void main(String[] args) {try {String key = "4SF6BJ3D8TDOT8NOCZ8T7P1K";String iv = "13002542";//IV length must be 8 bytes long//加密String encryptStr = DES3.encode("明文", key, iv);System.out.println(encryptStr);//解密String decryptStr = DES3.decode(encryptStr, key, iv);System.out.println(decryptStr);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
jar包:jar包
阅读全文
0 0
- 3DES加解密工具类
- DES加解密工具类
- DES加解密工具类
- DES加解密工具类
- DES加解密工具类
- JAVA工具类(16)---3des加解密工具类
- C#DES文件加解密工具类
- Java DES 加解密字符串、文件 工具类通用
- DES加解密及生成token工具类
- 关于DES加解密,3DES加解密
- DES、3DES 加解密;MAC算法
- PHP des 3des加解密
- java 3DES 加解密
- openssl 3des 加解密
- iOS 3DES加解密
- 3DES加解密案例
- 3DES加解密算法
- 3DES加解密-EncryptAndDecryptFile
- Maven 执行Javadoc时控制台输出乱码问题
- Java多线程的实现
- 前端菜鸟の每天一个小呆木---红绿灯
- Unity3D动态创建地形网格(二)
- c语言:strtok()函数
- 3DES加解密工具类
- 我的极致800指数上线第三天
- Win10通过修改注册表设置文本文档(.txt)自动换行
- matlab统计分析
- struts2其他
- 中国计算机学会CCF推荐国际学术会议和期刊目录-数据库/数据挖掘/内容检索
- 网络框架抽取(RxJava+Retrofit)
- 自定义View方法总结
- scrollview自动滑动到底部的问题