3des java ecb_3DES_ECB_加密解密
import java.util.ArrayList;
import java.util.List;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
public class SecretUtils {
//根秘钥
final static byte[] keyBytes = Util.hexStringToByteArray("404142434445464748494A4B4C4D4E4F48494A4B4C4D4E4F");
private static final String Algorithm = "DESede"; //3DES算法
private static byte[] ivs = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 };
private static IvParameterSpec iv = new IvParameterSpec(ivs);
/************************************************************
Function: // encryptMode(byte[] src,byte[] key)
Description: // 3DES_ECB_EN
Input: // src-源数据(byte[]) key-加密秘钥(byte[])
Output: // 加密后的数据
Return: // byte[]
*************************************************************/
public static byte[] encryptMode(byte[] src,byte[] key) {
try {
System.out.println("没到8bytes:"+Util.byteArrayToHexString(src));
SecretKey deskey = new SecretKeySpec(key, Algorithm); //生成密钥21
Cipher c1 = Cipher.getInstance("DESede/ECB/NoPadding"); //实例化负责加密/解密的Cipher工具类22
c1.init(Cipher.ENCRYPT_MODE, deskey); //初始化为加密模式23
return c1.doFinal(src); } catch (java.security.NoSuchAlgorithmException e1) {
e1.printStackTrace(); } catch (javax.crypto.NoSuchPaddingException e2) {
e2.printStackTrace(); } catch (java.lang.Exception e3) {
e3.printStackTrace();}
return null; }
/************************************************************
Function: // decryptMode(byte[] src,byte[] key)
Description: // 3DES_ECB_DE
Input: // src-源数据(byte[]) key-解密秘钥(byte[])
Output: // 解密后的数据
Return: // byte[]
*************************************************************/
public static byte[] decryptMode(byte[] src ,byte[] key) {
try {SecretKey deskey = new SecretKeySpec(key, Algorithm);
Cipher c1 = Cipher.getInstance("DESede/ECB/NoPadding");
c1.init(Cipher.DECRYPT_MODE, deskey); //初始化为解密模式44
return c1.doFinal(src); } catch (java.security.NoSuchAlgorithmException e1) {
e1.printStackTrace(); } catch (javax.crypto.NoSuchPaddingException e2) {
e2.printStackTrace(); } catch (java.lang.Exception e3) {
e3.printStackTrace(); } return null; }
/************************************************************
Function: // length_process(String src)
Description: // 计算MAC时用到,字符串长度处理为8byte的倍数
Input: // src-待变长的源数据(String)
Output: // 变长后后的源数据
Return: // String
*************************************************************/
private static String length_process(String src) {
if(src.length()%16==0){
return src;
}else if(src.length()%16==14){
return src+"80";
}else{
src+"80";
while(src.length()%8!=0){
src+="0";
}
return src;
}
}
public static String DES_ECB_EN(String data){
String msg = length_process(data);
byte[] Util.hexStringToByteArray(msg);
byte[] secretStr = SecretUtils.encryptMode(src,keyBytes); //调用加密方法16
System.out.println("【Card Cryptogram DATA明文是】:" + msg);
System.out.println("【Card Cryptogram 全部加密文是】:" + Util.byteArrayToHexString(secretStr));
return Util.byteArrayToHexString(secretStr);
}
public static String DES_ECB_DE(String secretStr){
byte[] myMsg = SecretUtils.decryptMode(Util.hexStringToByteArray(secretStr),keyBytes); //调用解密方法17
System.out.println("【Card Cryptogram DATA解密是】:" + Util.byteArrayToHexString(myMsg));
return Util.byteArrayToHexString(myMsg);
}
}
3des java ecb_3DES_ECB_加密解密相关推荐
- java字符串加密解密
2019独角兽企业重金招聘Python工程师标准>>> java字符串加密解密try {String test = "123456789@fdj.com";Enc ...
- Java DES 加密解密
1.加密的相关概念 1.明文:被隐蔽的消息称作明文(plaintext) 2.密文:隐蔽后的消息称作密文(ciphertext) 3.加密:将明文变换成密文的过程称作加密(encryption) 4. ...
- java 字符串加密 解密_java字符串加密解密
java字符串加密解密 try { String test = "123456789@fdj.com"; EncryptionDecryption des = new Encryp ...
- Java AES 加密解密工具类
maven 引入一个依赖 <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> <depen ...
- Java常用加密解密核心算法
加密算法 最近面试被问到了一些常见的加密解密算法,特此整理记录. 加密算法我们整体可以分为:可逆加密算法和不可逆加密算法.可逆加密算法又可以分为:对称加密算法和非对称加密算法. 一.不可逆加密算法 常 ...
- java des加密解密_Java实现的DES加密解密工具类实例
本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import ...
- java AES加密解密
近些年DES使用越来越少,原因就在于其使用56位密钥,比较容易被破解,近些年来逐渐被AES替代,AES已经变成目前对称加密中最流行算法之一:AES可以使用128.192.和256位密钥,并且用128位 ...
- java安全 加密解密!
拷贝java源文件到另外的Eclipse或者MyEclipse的时候.出现红叉,很可能的原因是Jre运行时的环境不对,java的安全主要讲了私钥,公钥.对称加密和非对称加密.说是加密,解密,对手吗加密 ...
- Java Base64 加密解密 (数据加密或解决手机Emoji表情被数据库过滤掉的问题)
2017年06月08日 10:15:19 glimmer_it 阅读数:359更多 个人分类: 安全加密 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...
最新文章
- php函数细节_php strip_tags()函数使用注意细节
- 原来这才是游戏上瘾的机制 如果把它用到生活中的话
- Unity3d5.0 新UI之2048
- 双电容单相电机接线图解_为什么单相电机要用电容,三相电机不需要?
- 在哪个瞬间你感觉自己是一个产品经理?
- 清除故障,Windows2003更加亲切
- CISCO交换机上实现MAC和端口、IP和端口、IP和MAC的绑定
- python前端工资_前端的工资分布情况-你又拖后退了吗?
- 批量下载花瓣图片脚本--抖机灵
- mysql官网默认账号缪_Mysql账户设置_增删改查_表操作
- 论文笔记Doubly Stochastic Variational Inference for Deep Gaussian Processes深度高斯过程的双重随机变分推理
- Debian6.02 终端中文设置--FBTerm + ucimf
- 复合辛普森公式求解定积分 matlab
- adb脚本选择语句_常用adb命令汇总(绝对干货)
- Android音乐播放器制作(一)扫描本地音乐显示在手机上
- 捕鱼来了2017系列游戏
- 微功率隔离电源专用驱动芯片
- Java之美[从菜鸟到高手演变]之智力题【史上最全】
- SpringCloud鉴权
- 【项目】小帽教育(一)
热门文章
- html css 如何将图片作为背景,CSS背景图片和HTML中的img标签
- 加州欧文大学计算机申请,加州大学欧文分校信息与计算机科学(信息方向)理学硕士研究生申请要求及申请材料要求清单...
- PS学习-制作下雨效果
- 马蹄疾 | 详解 JavaScript 异步机制及发展历程(万字长文)
- CyberArk被评为2022年Gartner特权访问管理魔力象限领导者
- java猫抓老鼠_猫抓老鼠-Java面向对象特点梳理
- 使用SPSS进行曲线估算分析
- 嵌入式电路中的BUCK VS LDO【转】
- cpci无法检索_图书馆无法进行CPCI-S检索 - 北京大学图书馆(PKULibrary)版 - 北大未名BBS...
- JSON是什么?对JSON的简单理解