java des加密类_java的DES加密解密辅助类

java的DES加密解密辅助类

package temptest;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import javax.crypto.*;

import javax.crypto.spec.*;

import sun.misc.BASE64Decoder;

public class desencryptiontest {

public static void main(String[] args) {

String text = "测试asdY^&*NN!__s some plaintext!";

System.out.println("加密前的明文:" + text);

String cryperText = "";

try {

cryperText = toHexString(encrypt(text));

System.out.println("加密前的明文:" + cryperText);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

System.out.println("解密后的明文:" + decrypt(cryperText));

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

System.in.read();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

private static byte[] desKey;

private static String key = "19491001";

public static String decrypt(String message) throws Exception {

byte[] bytesrc = convertHexString(message);

Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");

DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8"));

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

SecretKey secretKey = keyFactory.generateSecret(desKeySpec);

IvParameterSpec iv = new IvParameterSpec(key.getBytes("UTF-8"));

cipher.init(Cipher.DECRYPT_MODE, secretKey, iv);

byte[] retByte = cipher.doFinal(bytesrc);

return new String(retByte);

}

public static byte[] encrypt(String message) throws Exception {

Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");

DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8"));

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

SecretKey secretKey = keyFactory.generateSecret(desKeySpec);

IvParameterSpec iv = new IvParameterSpec(key.getBytes("UTF-8"));

cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);

return cipher.doFinal(message.getBytes("UTF-8"));

}

public static byte[] convertHexString(String ss) {

byte digest[] = new byte[ss.length() / 2];

for (int i = 0; i < digest.length; i++) {

String byteString = ss.substring(2 * i, 2 * i + 2);

int byteValue = Integer.parseInt(byteString, 16);

digest[i] = (byte) byteValue;

}

return digest;

}

public static String toHexString(byte b[]) {

StringBuffer hexString = new StringBuffer();

for (int i = 0; i < b.length; i++) {

String plainText = Integer.toHexString(0xff & b[i]);

if (plainText.length() < 2)

plainText = "0" + plainText;

hexString.append(plainText);

}

return hexString.toString();

}

}

发布者:系统管理员   点击数:1544   发布时间:2017-09-01 17:49:24   更新时间:2018-05-18 17:54:24

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js提交java后台,双引号转义为amp;quot;解决办法……StringEscapeUtils.unescapeHtml4完美解决

文章目录一、 问题现象&#xff1a;1.1. 前台数据1.2.后台数据二、 解决方案&#xff1a;2.1. maven依赖2.2. 关键代码2.3. 去空格处理一、 问题现象&#xff1a; 1.1. 前台数据 ryTask.serchData(000000INC20200830000001,2020-10-01,2020-10-21,Project,LSubmitInfo,INC)1.…

Kubernetes 如何打赢容器之战?

Kubernetes 近几年很热门&#xff0c;在各大技术论坛上被炒的很火。它提供了强大的容器编排能力&#xff0c;与此同时 DevOps 的概念也来到大家身边&#xff0c;广大的开发同学也能简单地运维复杂的商业化分布式系统&#xff0c;打破了传统开发和运维之间的界限。 本文会以初学…

一行Python代码能干什么?有意思!

我下班最大的乐趣就是刷抖音一开始刷的都是一些无聊小剧场后来看看能不能刷一些技术上的内容因为本人觉得Java是世界上最好的编程语言可是我在刷抖音的时候刷到了一行Python代码能干什么我突然觉得爱上Python了之前是听说Python比较简单同样的内容Java、C语言需要十几行Python只…

Java问题集锦--The type StringEscapeUtils is deprecated

The type StringEscapeUtils is deprecated” 之前一直使用commons-lang3-3.x.jar 这个jar包里面的 org.apache.commons.lang3.StringEscapeUtils 类来转义特殊字符&#xff0c;但是最近发现使用这个类会出现以下提示&#xff1a; Multiple markers at this line- The type St…

自然语言生成(NLG)的好处是什么,它如何影响BI?

近年来&#xff0c;我们已经看到了大数据的成功应用&#xff0c;但根据研究&#xff0c;只有20&#xff05;的员工能够真正的使用BI工具。此外&#xff0c;由于在统计思维方面缺乏培训且图表和图表形式的数据不是很清晰&#xff0c;决策者往往会出现误解和决策失误。而这背后的…

ida 字符串查找_IDA 搜索中文字符串

IDA 的字符串窗口默认只能显示英文&#xff0c;网上的一些方法是指定启动时的参数可以显示中文ida64 -DCULTUREallida -DCULTUREall还有就是修改 cfg/ida.cfg 文件&#xff0c;但是这两种方法都没试成功。实际上没有那么麻烦&#xff0c;IDA 7.0 操作很方便&#xff0c;在字符串…

“练好内功坚持被集成”,阿里云发布SaaS加速器

在3月21日的2019阿里云峰会北京上&#xff0c;阿里云发布新产品SaaS加速器&#xff1a;人工智能、虚拟现实等技术能力被集成为模块&#xff0c;ISV和开发者只要简单拖拽&#xff0c;就可以快速搭建SaaS应用。 发布现场&#xff0c;阿里云智能产品管理部总经理马劲进行简单演示…

2020 年,云游戏将爆发?各大科技公司云游戏布局大曝光!

作者 | 年素清责编 | 伍杏玲出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09; 伴随5G技术加速落地&#xff0c;云游戏作为5G应用落地的最佳场景&#xff0c;已经成为全球游戏厂商和云服务厂商布局的重要战场。根据艾媒咨询数据显示&#xff0c;2018年中国云游…

Springboot整合Quartz集群部署以及配置Druid数据源

参考链接&#xff1a; https://blog.csdn.net/wangmx1993328/article/details/105441308 https://blog.csdn.net/qq_39669058/article/details/90411497 参数配置连接&#xff1a;https://github.com/wangmaoxiong/quartzjdbc/blob/master/src/main/resources/application-clu…

我是如何拿到蚂蚁金服实习 offer 的

我是2018年3月入职蚂蚁的应届前端工程师&#xff0c;来自于北京邮电大学。2年前的此刻&#xff0c;我也是实习求职大潮中的一员&#xff0c;在这里&#xff0c;分享一下我从准备面试到实习&#xff0c;再到最终正式入职的经历。 选择蚂蚁 阿里的前端水平在业界有着很高的评价…

java 客户化排序_第八部分_客户化JSP标签

EL语言(减少JSP页面中的Java代码)String password request.getParameter("password");%>username: password: username: ${param.username }password: ${param.password }属性范围->在EL中的名称Page->pageScope&#xff1b;Request->requestScope&…

十大类疫情服务紧缺 阿里广发英雄帖抗疫小程序开发者最高可获50万元奖励

全民积极响应国家抗击新冠肺炎疫情的号召&#xff0c;正催生出越来越多新的互联网服务缺口。基于对用户、政府、企事业单位抗疫服务需求的紧缺情况调查&#xff0c;支付宝今日面向社会各界开发者发布“10大疫情期最急需服务开发清单”&#xff0c;号召更多开发者投入进来开发更…

信用算力基于 RocketMQ 实现金融级数据服务的实践

微服务架构已成为了互联网的热门话题之一&#xff0c;而这也是互联网技术发展的必然阶段。然而&#xff0c;微服务概念的提出者 Martin Fowler 却强调&#xff1a;分布式调用的第一原则就是不要分布式。 纵观微服务实施过程中的弊端&#xff0c;可以推断出作者的意图&#xff…

java map用二叉树_【课堂笔记分享】linkedlist、二叉树、hashmap

LinkedList序列分先进先出FIFO,先进后出FILOFIFO在Java中又叫Queue 队列FILO在Java中又叫Stack 栈LinkedList 与 List接口与ArrayList一样&#xff0c;LinkedList也实现了List接口&#xff0c;诸如add,remove,contains等等方法。 详细使用&#xff0c;请参考 ArrayList 常用方法…

六年打磨!阿里开源混沌工程工具 ChaosBlade

阿里妹导读&#xff1a;减少故障的最好方法就是让故障经常性的发生。通过不断重复失败过程&#xff0c;持续提升系统的容错和弹性能力。今天&#xff0c;阿里巴巴把六年来在故障演练领域的创意和实践汇浓缩而成的工具进行开源&#xff0c;它就是 “ChaosBlade”。如果你想要提升…

jmeter-5.3 测试http接口动态数据 windows+Linux双环境

文章目录一、基础组件1. 企业需求2. 创建线程组&#xff1a;3. 创建HTTP请求4. CSV 数据文件组件5. 响应断言二、添加监听器2.1. 添加察看结果树2.2. 添加聚合报告2.3. 监听每秒事务数2.4. 监听 随时间变化的响应时间三、HTTP请求配置3.1. 基础参数四、 响应断言配置四、 CSV 数…

阿里达摩院又火了!引入AI确诊肺炎提速16倍,仅需半小时!网友神回复了

针对新型冠状病毒的确诊&#xff0c;全国大多数医院基本都采用核酸检测。果壳网发文称&#xff1a;从病人样本送到实验室即刻开始测试&#xff0c;到出检测报告&#xff0c;差不多需要8个小时。但是8个小时太长&#xff0c;在现在这种病毒传播速度下&#xff0c;让人焦急万分。…

用java写ods系统_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)...

TableGo是基于数据库的代码自动生成工具&#xff0c;低代码编程技术的实现&#xff0c;可以零代码自动生成SpringBoot项目工程、生成JavaBean、生成前后端分离的CRUD代码、生成MyBaits的Mapper映射配置文件、生成数据库设计文档(Word、Excel)、生成Swagger2离线API文档、生成前…

Node.js 应用故障排查手册 —— 冗余配置传递引发的内存溢出

楔子 前面一小节我们以一个真实的压测案例来给大家讲解如何利用 Node.js 性能平台 生成的 CPU Profile 分析来进行压测时的性能调优。那么与 CPU 相关的问题相比&#xff0c;Node.js 应用中由于不当使用产生的内存问题是一个重灾区&#xff0c;而且这些问题往往都是出现在生产…

一分钟在Linux 环境 搭建 SFTP服务器

文章目录一、实战1. 创建sftp组&#xff1a;2. 创建一个用户sftpuser&#xff1a;3. 设置sftpuser用户的密码&#xff0c;会要求你输入两次密码确认&#xff1a;4. 创建一个sftp的上传目录&#xff1a;5. 修改用户sftpuser所在的目录&#xff1a;6. 配置sshd_config&#xff1a…