热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javades加密解密包_DES加密解密Java中运用

packagecom.blog.d201706.encrypt;importjavax.crypto.Cipher;importjavax.crypto.SecretKey;imp

packagecom.blog.d201706.encrypt;importjavax.crypto.Cipher;importjavax.crypto.SecretKey;importjavax.crypto.SecretKeyFactory;importjavax.crypto.spec.DESKeySpec;importjavax.crypto.spec.IvParameterSpec;public classDes {/*** 加密

*@paramdata

*@paramsKey

*@return

*/

public static byte[] encrypt(byte[] data, String sKey) {try{byte[] key =sKey.getBytes();//初始化向量

IvParameterSpec iv = newIvParameterSpec(key);

DESKeySpec desKey= newDESKeySpec(key);//创建一个密匙工厂,然后用它把DESKeySpec转换成securekey

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

SecretKey securekey=keyFactory.generateSecret(desKey);//Cipher对象实际完成加密操作

Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");//用密匙初始化Cipher对象

cipher.init(Cipher.ENCRYPT_MODE, securekey, iv);//现在,获取数据并加密//正式执行加密操作

returncipher.doFinal(data);

}catch(Throwable e) {

e.printStackTrace();

}return null;

}/*** 解密

*@paramsrc

*@paramsKey

*@return*@throwsException*/

public static byte[] decrypt(byte[] src, String sKey) throwsException {byte[] key =sKey.getBytes();//初始化向量

IvParameterSpec iv = newIvParameterSpec(key);//创建一个DESKeySpec对象

DESKeySpec desKey = newDESKeySpec(key);//创建一个密匙工厂

SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");//将DESKeySpec对象转换成SecretKey对象

SecretKey securekey =keyFactory.generateSecret(desKey);//Cipher对象实际完成解密操作

Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");//用密匙初始化Cipher对象

cipher.init(Cipher.DECRYPT_MODE, securekey, iv);//真正开始解密操作

returncipher.doFinal(src);

}/*** 将二进制转换成16进制

*

*@parambuf

*@return

*/

public static String parseByte2HexStr(bytebuf[]) {

StringBuffer sb= newStringBuffer();for (int i = 0; i

String hex= Integer.toHexString(buf[i] & 0xFF);if (hex.length() == 1) {

hex= '0' +hex;

}

sb.append(hex.toUpperCase());

}returnsb.toString();

}/*** 将16进制转换为二进制

*

*@paramhexStr

*@return

*/

public static byte[] parseHexStr2Byte(String hexStr) {if (hexStr.length() <1) return null;byte[] result &#61; new byte[hexStr.length() / 2];for (int i &#61; 0; i

result[i]&#61; (byte) (high * 16 &#43;low);

}returnresult;

}

}



推荐阅读
  • 本文详细介绍了 Java 中 org.apache.jena.atlas.lib.ByteBufferLib 类下的 acopyArray 方法,并提供了多个实际应用中的代码示例,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • 本文探讨了在使用JavaMail发送电子邮件时,抄送功能未能正常工作的问题,并提供了详细的代码示例和解决方法。 ... [详细]
  • 在Java开发中,保护代码安全是一个重要的课题。由于Java字节码容易被反编译,因此使用代码混淆工具如ProGuard变得尤为重要。本文将详细介绍如何使用ProGuard进行代码混淆,以及其基本原理和常见问题。 ... [详细]
  • 本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • Java中如何判断一个对象是否为Long类型
    本文介绍了一种在Java中判断对象是否属于Long类型的方法,通过定义一个特定的方法来实现这一功能,该方法能够准确地识别并返回结果。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 在现代Web开发中,HTML5 Canvas常用于图像处理和绘图任务。本文将详细介绍如何将Canvas中的图像导出并上传至服务器,适用于拼图、图片编辑等场景。 ... [详细]
  • IO流——字符流 BufferedReader / BufferedWriter 进行文件读写
    目录节点流、处理流读文件:BufferedReader的使用写文件:BufferedWriter的使用节点流处理流节点流和处理流的区别和联系字符流Buf ... [详细]
  • Java中的引用类型详解
    本文详细介绍了Java中的引用类型,包括强引用、软引用、弱引用和虚引用的特点和应用场景。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
author-avatar
mobiledu2502857407
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有