// 密钥(固定密钥只为测试使用,实际根据项目的密钥)
private final static String secretKey = "c528fb5862b48f03e1ad3d4ee68c670c";
//向量长度必须为8的倍数
private final static String iv = "01234567";
// 编码方式
private final static String encoding = "utf-8";

加密

/*** 3des加密* @param deviceSecret 需要加密的内容* @return*/
public String Encrypt(String deviceSecret){String asciiString = "";Key deskey = null;try {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 = Base64Utils.encode(cipher.doFinal(deviceSecret.getBytes(encoding)));asciiString = new String(encryptData);} catch (Exception e) {log.error("",e);}return  asciiString;
}

解密

/*** 3des解密* @param decryption 需要解密的内容* @return*/
public  String Decryption(String decryption){String asciiString = null;try{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.DECRYPT_MODE, deskey, ips);byte[] decryptData =  cipher.doFinal(Base64Utils.decode(decryption.getBytes()));asciiString = new String(decryptData,encoding);} catch (Exception e) {log.error("",e);}return  asciiString;
}

注意:一定要用base64加密解密,前面我因为没用base64处理,一直乱码问题

3des加密及解密处理相关推荐

  1. 探讨NET Core数据进行3DES加密或解密弱密钥问题

    [导读]之前写过一篇<探讨.NET Core数据进行3DES加密和解密问题>,最近看到有人提出弱密钥问题,换个强密钥不就完了吗,猜测可能是与第三方对接导致很无奈不能更换密钥,所以产生本文解 ...

  2. 3DES加密、解密工具类

    一个简单的3DES加密.解密工具类,Base64在 sun.misc.BASE64Decoder替代类有介绍 package com.w; import java.security.Key; impo ...

  3. 探讨.NET Core数据进行3DES加密和解密问题

    前言 一直困扰着我关于数据加密这一块,24号晚上用了接近3个小时去完成一项任务,本以为立马能解决,但是为了保证数据的安全性,我们开始去对数据进行加密,然后接下来3个小时专门去研究加密这一块,然而用着用 ...

  4. 3des加密 java php_java的3DES加密PHP7解密备忘录

    前言: 有一个项目需要跟甲方做接口,甲方使用的是java的3DES加密解密方式. 甲方加密解密部分截图代码: 填写图片摘要(选填) 第一步: 将甲方的iv转成PHP可以使用的偏移量 填写图片摘要(选填 ...

  5. DES/3DES加密,解密

    〇.前言 最近在项目中,涉及到与第三方厂家系统进行对接时,在参数传递过程中考虑到了数据的安全性,故双方采用3DES进行对传递参数的加解密,因此,进一步了解了下3DES的加解密算法,再次进行梳理. 一. ...

  6. js的3DES加密与解密

    3DES的加密与解密 Base64与Hex Base64与Hex都属于编码形式,Hex又称Base16.在3DES的加密与解密过程中,需要进行两种编码形式的转换. 3DES的加密 首先first.ht ...

  7. 加密系列 | 3DES加密和解密算法详解代码示例

    3DES的在Java的实现与DES类似,如下代码为3DES加密算法.CBC模式.PKCS5Padding填充方式的加密解密结果,参考代码如下所示: import java.security.Key;i ...

  8. 7.node.js的3DES 加密和解密的方法封装

    原文:http://blog.csdn.net/ererfei/article/details/73558226 1 var assert = require('assert'); 2 var cry ...

  9. Java实现3DES加密解密(DESede/ECB/PKCS5Padding使用)

    一.简介 3DES(又叫Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称. 它相当于是对每个数据块应用三次DES加密算 ...

  10. java之php、Android、JAVA、C# 3DES加密解密

    异常如下 1.javax.crypto.BadPaddingException: Given final block not properly padded 1)要确认下是否加密和解密都是使用相同的填 ...

最新文章

  1. 更改chrome底色为护目色
  2. Vmware安装提示在关闭以下进程 之前,无法进行安装的解决办法
  3. RBL, UBL, Uboot的关系
  4. Logstash 使用fingerprint filter过滤重复数据
  5. 关闭Mycelipse的拼写检查
  6. oracle类型不匹配,sys_refcursor的使用,报错类型不匹配
  7. 在linux下编译boost库【搜集】
  8. JSLint Error 之 Don't make functions within a loop
  9. 收集一些常用的CDN链接!无需下载快速使用!
  10. 嘘,我已经瞒着开发解锁APP日志文件抓取及分析啦!
  11. Pascal VOC 2007和2012数据集下载地址(不需国外,速度依旧让你感动)
  12. 用canvas画圆饼图
  13. linux——20线程池
  14. 基于单片机的自动追日系统设计_基于单片机控制的简易逐日式太阳能发电系统...
  15. 201771010112罗松《面向对象程序设计(java)》第七周学习总结
  16. 全国计算机缴费时间江苏,2018年3月江苏全国计算机等级考试报名时间
  17. 微信刷脸支付开放政策启动,亿万级市场待你加入!
  18. 揭秘喜马拉雅黑科技——网页播放器(创建自己的单页应用)
  19. 【SVPWM】SVPWM算法推导及其Simulink仿真(一)
  20. 网线线序及网线转RS232—— DB9线序

热门文章

  1. 图片怎样放大后不模糊?
  2. ThinkPHP 漏洞检测
  3. APP界面常用的五种颜色搭配
  4. 分享图片至Facebook与Twitter
  5. 为什么html中图片显示不出来,网页图片不显示怎么回事?网页图片不显示的解决方法...
  6. ElementUI修改Dialog的标题样式
  7. 再添近10个新冠知识图谱,OpenKG发布第二批开放数据集
  8. powerdesigner将name填充到comment中
  9. Python 正则表达式 re模块 groups/group
  10. c51单片机时钟程序汇编语言,51单片机时钟汇编程序