3des加密及解密处理
// 密钥(固定密钥只为测试使用,实际根据项目的密钥)
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加密及解密处理相关推荐
- 探讨NET Core数据进行3DES加密或解密弱密钥问题
[导读]之前写过一篇<探讨.NET Core数据进行3DES加密和解密问题>,最近看到有人提出弱密钥问题,换个强密钥不就完了吗,猜测可能是与第三方对接导致很无奈不能更换密钥,所以产生本文解 ...
- 3DES加密、解密工具类
一个简单的3DES加密.解密工具类,Base64在 sun.misc.BASE64Decoder替代类有介绍 package com.w; import java.security.Key; impo ...
- 探讨.NET Core数据进行3DES加密和解密问题
前言 一直困扰着我关于数据加密这一块,24号晚上用了接近3个小时去完成一项任务,本以为立马能解决,但是为了保证数据的安全性,我们开始去对数据进行加密,然后接下来3个小时专门去研究加密这一块,然而用着用 ...
- 3des加密 java php_java的3DES加密PHP7解密备忘录
前言: 有一个项目需要跟甲方做接口,甲方使用的是java的3DES加密解密方式. 甲方加密解密部分截图代码: 填写图片摘要(选填) 第一步: 将甲方的iv转成PHP可以使用的偏移量 填写图片摘要(选填 ...
- DES/3DES加密,解密
〇.前言 最近在项目中,涉及到与第三方厂家系统进行对接时,在参数传递过程中考虑到了数据的安全性,故双方采用3DES进行对传递参数的加解密,因此,进一步了解了下3DES的加解密算法,再次进行梳理. 一. ...
- js的3DES加密与解密
3DES的加密与解密 Base64与Hex Base64与Hex都属于编码形式,Hex又称Base16.在3DES的加密与解密过程中,需要进行两种编码形式的转换. 3DES的加密 首先first.ht ...
- 加密系列 | 3DES加密和解密算法详解代码示例
3DES的在Java的实现与DES类似,如下代码为3DES加密算法.CBC模式.PKCS5Padding填充方式的加密解密结果,参考代码如下所示: import java.security.Key;i ...
- 7.node.js的3DES 加密和解密的方法封装
原文:http://blog.csdn.net/ererfei/article/details/73558226 1 var assert = require('assert'); 2 var cry ...
- Java实现3DES加密解密(DESede/ECB/PKCS5Padding使用)
一.简介 3DES(又叫Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称. 它相当于是对每个数据块应用三次DES加密算 ...
- java之php、Android、JAVA、C# 3DES加密解密
异常如下 1.javax.crypto.BadPaddingException: Given final block not properly padded 1)要确认下是否加密和解密都是使用相同的填 ...
最新文章
- 更改chrome底色为护目色
- Vmware安装提示在关闭以下进程 之前,无法进行安装的解决办法
- RBL, UBL, Uboot的关系
- Logstash 使用fingerprint filter过滤重复数据
- 关闭Mycelipse的拼写检查
- oracle类型不匹配,sys_refcursor的使用,报错类型不匹配
- 在linux下编译boost库【搜集】
- JSLint Error 之 Don't make functions within a loop
- 收集一些常用的CDN链接!无需下载快速使用!
- 嘘,我已经瞒着开发解锁APP日志文件抓取及分析啦!
- Pascal VOC 2007和2012数据集下载地址(不需国外,速度依旧让你感动)
- 用canvas画圆饼图
- linux——20线程池
- 基于单片机的自动追日系统设计_基于单片机控制的简易逐日式太阳能发电系统...
- 201771010112罗松《面向对象程序设计(java)》第七周学习总结
- 全国计算机缴费时间江苏,2018年3月江苏全国计算机等级考试报名时间
- 微信刷脸支付开放政策启动,亿万级市场待你加入!
- 揭秘喜马拉雅黑科技——网页播放器(创建自己的单页应用)
- 【SVPWM】SVPWM算法推导及其Simulink仿真(一)
- 网线线序及网线转RS232—— DB9线序