c 加密 java解密错误_java解密出错

展开全部

你那个代码少得东西太多,我左试右试,都是错,也不知道你的初始32313133353236313431303231363533e78988e69d8331333332613762值都是什么。

给你写了一个加密解密的,希望对你有帮助。import java.security.NoSuchAlgorithmException;

import java.security.SecureRandom;

import javax.crypto.Cipher;

import javax.crypto.KeyGenerator;

import javax.crypto.SecretKey;

public class Test {

/**

* 创建密匙

*/

public SecretKey createSecretKey(String algorithm) {

// 声明KeyGenerator对象

KeyGenerator keygen;

// 声明 密钥对象

SecretKey deskey = null;

try {

// 返回生成指定算法的秘密密钥的 KeyGenerator 对象

keygen = KeyGenerator.getInstance(algorithm);

// 生成一个密钥

deskey = keygen.generateKey();

} catch (NoSuchAlgorithmException e) {

e.printStackTrace();

}

// 返回密匙

return deskey;

}

/**

* 根据密匙进行DES加密

*/

public String encryptToDES(SecretKey key, String info) {

// 定义 加密算法,可用 DES,DESede,Blowfish

String Algorithm = "DES";

// 加密随机数生成器 (RNG),(可以不写)

SecureRandom sr = new SecureRandom();

// 定义要生成的密文

byte[] cipherByte = null;

try {

// 得到加密/解密器

Cipher c1 = Cipher.getInstance(Algorithm);

// 用指定的密钥和模式初始化Cipher对象

// 参数:(ENCRYPT_MODE, DECRYPT_MODE, WRAP_MODE,UNWRAP_MODE)

c1.init(Cipher.ENCRYPT_MODE, key, sr);

// 对要加密的内容进行编码处理,

cipherByte = c1.doFinal(info.getBytes());

} catch (Exception e) {

e.printStackTrace();

}

// 返回密文的十六进制形式

return byte2hex(cipherByte);

}

/**

* 根据密匙进行DES解密

*/

public String decryptByDES(SecretKey key, String sInfo) {

// 定义 加密算法,

String Algorithm = "DES";

// 加密随机数生成器 (RNG)

SecureRandom sr = new SecureRandom();

byte[] cipherByte = null;

try {

// 得到加密/解密器

Cipher c1 = Cipher.getInstance(Algorithm);

// 用指定的密钥和模式初始化Cipher对象

c1.init(Cipher.DECRYPT_MODE, key, sr);

// 对要解密的内容进行编码处理

cipherByte = c1.doFinal(hex2byte(sInfo));

} catch (Exception e) {

e.printStackTrace();

}

// return byte2hex(cipherByte);

return new String(cipherByte);

}

/**

* 将二进制转化为16进制字符串

*/

public String byte2hex(byte[] b) {

String hs = "";

String stmp = "";

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

stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));

if (stmp.length() == 1) {

hs = hs + "0" + stmp;

} else {

hs = hs + stmp;

}

}

return hs.toUpperCase();

}

/**

* 十六进制字符串转化为2进制

*/

public byte[] hex2byte(String hex) {

byte[] ret = new byte[8];

byte[] tmp = hex.getBytes();

for (int i = 0; i < 8; i++) {

ret[i] = uniteBytes(tmp[i * 2], tmp[i * 2 + 1]);

}

return ret;

}

public static byte uniteBytes(byte src0, byte src1) {

byte _b0 = Byte.decode("0x" + new String(new byte[] { src0 }))

.byteValue();

_b0 = (byte) (_b0 << 4);

byte _b1 = Byte.decode("0x" + new String(new byte[] { src1 }))

.byteValue();

byte ret = (byte) (_b0 ^ _b1);

return ret;

}

public static void main(String[] args) {

Test jiami = new Test();

// 生成一个DES算法的密匙

SecretKey key = jiami.createSecretKey("DES");

// 用密匙加密信息"Hello world!"

String str1 = jiami.encryptToDES(key, "Hello");

System.out.println("使用des加密信息Hello为:" + str1);

// 使用这个密匙解密

String str2 = jiami.decryptByDES(key, str1);

System.out.println("解密后为:" + str2);

}

}

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

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

相关文章

Redis成神之路电子版教程已问世,面试题+笔记+项目实战

前言 我想对所有程序员说&#xff1a;除了看视频、做项目来提高自身的技术之外&#xff0c;还有一种提升自己的专业技能就是&#xff1a;多&#xff01;看&#xff01;书&#xff01;&#xff08;本文内提到的书单笔者整理出了一份电子档作为分享&#xff0c;文末有免费获取方式…

java 中的event_Java中this与event有什么不同

Java中this与event有什么不同发布时间&#xff1a;2021-02-11 10:37:25来源&#xff1a;亿速云阅读&#xff1a;61作者&#xff1a;LeahJava中this与event有什么不同&#xff1f;相信很多没有经验的人对此束手无策&#xff0c;为此本文总结了问题出现的原因和解决方法&#xff…

Redis有几种数据类型?文末领取面试资料

前言 其实前几篇文章已经写了好多有关于Spring源码的文章&#xff0c;事实上&#xff0c;很多同学虽然一直在跟着阅读、学习这些Spring的源码教程&#xff0c;但是一直都很迷茫&#xff0c;这些Spring的源码学习&#xff0c;似乎只是为了面试吹逼用&#xff0c;我大概问过一些…

java 多重属性_最全面的44个Java 性能调优细节

我认为&#xff0c;代码优化的最重要的作用应该是&#xff1a;避免未知的错误。在代码上线运行的过程中&#xff0c;往往会出现很多我们意想不到的错误&#xff0c;因为线上环境和开发环境是非常不同的&#xff0c;错误定位到最后往往是一个非常小的原因。然而为了解决这个错误…

Redis灵魂14问?真香

前言 今日博主听闻&#xff0c;现在很多培训出来的应届生薪资都赶上了摸爬滚打两三年的朋友&#xff0c;讲道理&#xff0c;这说不过去啊 作为同行来说&#xff0c;这个行业发展很快&#xff0c;技术更新很快&#xff0c;淘汰也很快&#xff0c;千万不要再找借口了&#xff0…

java主流微服务框架_Spring Boot作为当下最流行的微服务开发框架,一名合格的Java开发者一定有所了解,...

Spring Boot作为当下最流行的微服务开发框架&#xff0c;一名合格的Java开发者一定有所了解&#xff0c;Spring Boot相对于传统的SSM框架来说&#xff1a;springboot使用了特定的配置方式&#xff0c;开发人员不需要再定义样板化的配置&#xff0c;简化项目的初始构建springboo…

Redis面试复习大纲在手面试不慌,内含福利

前言 这几年在Java工程师招聘时&#xff0c;会看到很多人的简历都写着使用了Spring Cloud做微服务实现&#xff0c;使用Docker做自动化部署&#xff0c;并且也会把这些做为自己的亮点。而比较有趣的这其中以小公司出来的人为绝大多数&#xff0c;大的公司出来的人简历上倒是很…

java注解编程_Java注解编程原理

一、先了解以下4个元注解Documented具体来说是生成说明文档时把类的解释添加进去。Inherited 允许子类继承父类中的注解Target 表示该注解用于什么地方&#xff0c;可能的值在枚举类 ElemenetType 中public enum ElementType {TYPE, //给类(型)注解FIELD, //给字段注解&#x…

Redis面试复习大纲在手面试不慌,讲的明明白白!

前言 面试时间将近两个小时&#xff08;期间等待二面面试官来面我的时候等了半个多小时&#xff09;面试官问的东西很多&#xff0c;还挖了好几个坑&#xff0c;一个技术点套着一个技术点的问&#xff0c;一定要做好万全的准备。问了一些基本层面上的技术点都答出来了&#xf…

python sendline_python Pexpect模块的使用

Pexpect简介在讲解Pexpect之前&#xff0c;我们需要先了解一下Expect这个脚本语言&#xff0c;它是由TCL语言实现的&#xff0c;主要用于人机交互式对话的自动化控制&#xff0c;可以用来完成ssh、ftp、telnet等命令行程序的自动化交互。Pexpect其实就是一个用Python语言实现的…

RocketMQ消息丢失场景及解决办法,已拿offer入职

前言 当前我们都会说SpringBoot是Spring框架对“约定优先于配置理念的最佳实践的产物&#xff0c;一个典型的SpringBoot应用本质上其实就是一个基于Spring框架的应用&#xff0c;而如果大家对Spring框架已经了如指掌&#xff0c;那么&#xff0c;在我们一步步揭开SpringBoot微…

java抓rtp包_Wireshark抓取RTP包,还原语音

最近在做基于SIP的VoIP通信研究&#xff0c;使用Wireshark软件可以对网络流量进行抓包。VoIP使用RTP协议对语音数据进行传输&#xff0c;语音载荷都封装在RTP包里面。要对传输中的语音进行截获和还原&#xff0c;需要通过Wireshark对RTP包进行分析和解码。该过程如下&#xff1…

RocketMQ消费者是如何获取消息的?转疯了!

前言 前两天&#xff0c;我收到了蚂蚁金服的offer&#xff0c;从朋友的内推开始面试到拿到最后offer经历了4面技术、一面交叉面和一面HR面。经过了漫长的等待和几次几乎折磨的面试之后&#xff0c;终于拿到了offer。 第1章&#xff1a;Dubbo的简史、后续的规划和整体架构大图 …

java if在内存中_java如何将对象暂存到内存中?

展开全部form表单提交文件&#xff0c;建议用62616964757a686964616fe59b9ee7ad9431333264623862smartupload上传&#xff0c;暂存在web服务器目录下&#xff0c;然后稍微一下下面的代码&#xff0c;ftp上传后&#xff0c;删除暂存文件&#xff0c;okimport java.io.File;impor…

K8S+Docker理论与实践深度集成

前言&#xff1a; 这篇文章主要介绍了26道Spring经典面试题总结(附带答案)的相关资料,小编在网上看到的觉得挺不错的&#xff0c;现在分享给大家&#xff0c;希望对你们有所帮助。 另外本人整理收藏了多家公司面试知识点整理 &#xff0c;以及各种Java核心知识点免费分享给大…

java 注解 方法 参数_java在注解中绑定方法参数的解决方案

我们有这样子的需求&#xff0c;需要记录用户操作某个方法的信息并记录到日志里面&#xff0c;例如&#xff0c;用户在保存和更新任务的时候&#xff0c;我们需要记录下用户的ip&#xff0c;具体是保存还是更新&#xff0c;调用的是哪个方法&#xff0c;保存和更新的任务名称以…

Kafka的精髓全写这本“限量笔记”里了

前言 大厂面试真题向来是求职者的最佳练兵场&#xff0c;华为在Java开发工程师招聘中有哪些技术性考察和倾向&#xff1f;那今天咱就给大家分享一下近期的华为5面面经&#xff01; 注&#xff1a;以下所分享的华为面试问题&#xff0c;相关的答案我也整理出来了&#xff0c;且…

gcc是java的什么意思_为什么gcc支持Java而不是C#

我已经seen this question了,我想知道是否有任何技术理由可以证明gcc支持Java但不支持C#.如果我理解,Java也是一种解释性语言.如果Mono提供C#编译器和CIL的实现,为什么不能创建一个将C#转换为IL然后静态编译的gcc c#编译器&#xff1f;解决方法:如果编译器工具链不支持特定语言…

MongoDB数据分布不均的解决方案

前言 算法血拼&#xff1a;Google百度Alibaba字节Tencent网易360拼夕夕美团 不知不觉双11就来了,轰轰烈烈的秋招也完美结束了,不知算法与数据结构成为了多少小伙伴进击大厂的绊脚石&#xff1f; 恰好&#xff0c;我这两天花了点时间&#xff0c;整理了些各大厂&#xff08;G…

Mybatis-plus常用API全套教程

前言 前两天&#xff0c;我收到了蚂蚁金服的offer&#xff0c;从朋友的内推开始面试到拿到最后offer经历了4面技术、一面交叉面和一面HR面。经过了漫长的等待和几次几乎折磨的面试之后&#xff0c;终于拿到了offer。 正文 下文中截图来源于朋友一个pdf版本的面经&#xff0c;…