展开全部

你那个代码少得东西太多,我左试右试,都是错,也不知道你的初始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);

}

}

c 加密 java解密错误_java解密出错相关推荐

  1. java 常见错误_Java常见错误的十大列表(前100名!)

    java 常见错误 前10名名单非常受欢迎,有趣且内容丰富. 但是有很多! 如何选择合适的? 这是一个元前10名列表,可帮助您找到前10名的前10名列表. 在更令人讨厌的笔记上: SELECT TOP ...

  2. java 语法错误_java菜鸟提问:编译时异常和语法错误的区别?

    语法错误是你真写错了,比如"All the people here work hardly."这句话就是语法错误,hard也可用作副词,所以"All the people ...

  3. java logger错误_java logger.error日志误区

    原因分析 很多程序员会无意间可能会这样打日志 logger.error(e); logger.error(e.getMessage); logger.error("错误信息:" + ...

  4. java 12错误_Java异常处理的12条军规总结

    异常的概念 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error:如果你用Syst ...

  5. java 常见 错误_JAVA几个常见错误简析

    JAVA几个常见错误简析 Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的.下面就来和小编一起看看JAVA几个常见 ...

  6. appium java版本错误_java – 无法创建新会话. appium代码中的错误

    无法创建新会话. (原始错误:请求新会话,但其中一个正在进行中)如果我第二次运行我的代码,则会显示此错误.第一次正常工作 为selenium编写代码 public static void main(S ...

  7. delphi7aes加密解密与java互转_Java 加密/解密Excel

    概述 设置excel文件保护时,通常可选择对整个工作簿进行加密保护,打开文件时需要输入密码:或者对指定工作表进行加密,即设置表格内容只读,无法对工作表进行编辑.另外,也可以对工作表特定区域设置保护,即 ...

  8. java数据加密解密代码_java使用RSA加密方式实现数据加密解密的代码

    RSA的应用 RSA是一种非对称加密算法.现在,很多登陆表单的密码的都采用RSA加密,例如京东中的登陆使用公钥对密码进行加密 java使用RSA加密方式实现数据加密解密,需要首先产生私钥和公钥 测试代 ...

  9. java加密解密代码_java加解密文件公用方法整合(多看一本书,少写三行代码)

    最近接到任务(文件的安全性)需要在文件上传到服务器上时将文件加密保存, 用户下载时将文件解密后返回给用户.翻了下方法最后决定用java中的Cipher类来完成(里面的实现方式挺全的). 上手实现.po ...

最新文章

  1. PB级分布式大数据的处理和分析应用
  2. EJB之JPA(UUID与TABLE影射策略)
  3. 将Spring Boot应用程序与Amazon Cognito集成
  4. Github Actions:再次改变软件开发
  5. 【Flink】Flink写入es报错failed to get node info for request_id time out out after
  6. 在cisco switch上配置MSTP
  7. Sublime Text2.0.2注册码,添加python编译系统:
  8. 缓存穿透缓存雪崩,缓存击穿,django的6种缓存数据
  9. IIS网站设置禁止IP访问设置方法
  10. 用双轨驶向未来:千兆宽带将如何改变我们的家庭生活?
  11. 车联网TBOX国六OBD排放终端远程在线监控系统
  12. 学习CentOS6这一篇就够了
  13. 面试经典必问:ReentrantLock 中CLH队列
  14. 《Python编程从入门到实践》(第2版)第二章 习题答案
  15. Visual Studio Code 代码显示空格等空白符的方法
  16. ios友联统计的一些功能
  17. mysql 漏洞 wa_[漏洞案例]thinkcmf 2.x从sql注入到getshell实战
  18. Kubernetes容器编排引擎
  19. faker和劫的图片_faker劫反杀ryu第一视角完整视频和gif,慢动作回放两个劫之间的较量分析...
  20. 10个python接私活的平台,整整10个!总有适合你的,你有技术就有钱

热门文章

  1. dnse 2.0音效厉害还是full sound厉害点呢?谢谢!!
  2. 沣东新城镐京遗址规划_沣东新城房价为啥这么高?
  3. 智联招聘简历如何导出html,如何将拉勾网(智联招聘)的预览简历导出来
  4. java 反射 new class_Java高级特性-反射:不写死在代码,还怎么 new 对象?
  5. 热敏电阻温度特性曲线_热敏电阻与体温计的应用关系
  6. linux系统md5sum命令用不了,Linux中md5sum命令起什么作用呢?
  7. 有关循环和判断的几个小问题
  8. android studio点击图片,如何在Android Studio中的模拟器图库中添加图像?
  9. 高效快速中值滤波算法c语言,快速中值滤波及c语言实现.docx
  10. java调用webservice_笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解...