闲话不多说,我们直接上干货

加密
 public static String encrypt(String datasource) {try{DESKeySpec desKey = new DESKeySpec(PASSWORD.getBytes());//创建一个密匙工厂,获取secretKeySecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey secretKey = keyFactory.generateSecret(desKey);//指定获取DES的Cipher对象Cipher cipher = Cipher.getInstance("DES");//用密匙初始化Cipher对象cipher.init(Cipher.ENCRYPT_MODE, secretKey, new SecureRandom());//数据加密return parseByte2HexStr(cipher.doFinal(datasource.getBytes("utf-8")));}catch(Throwable e){e.printStackTrace();}return null;}
解密
public static String decrypt(String src){try{// 创建一个DESKeySpec对象,PASSWORD可任意指定DESKeySpec desKey = new DESKeySpec(PASSWORD.getBytes());// 创建一个密匙工厂SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");// 生成密钥SecretKey secretkey = keyFactory.generateSecret(desKey);// 指定获取DES的Cipher对象Cipher cipher = Cipher.getInstance("DES");// 用密匙初始化Cipher对象cipher.init(Cipher.DECRYPT_MODE, secretkey, new SecureRandom());// 真正开始解密操作return new String(cipher.doFinal(parseHexStr2Byte(src)));}catch(Throwable e){e.printStackTrace();}return null;
}

测试

 public static void main(String[] args) {String str = "I'm encode content";String result = DesUtils.encrypt(str);System.out.println("encode result is :"+result);//直接将如上内容解密try {String decryResult = DesUtils.decrypt(result);System.out.println("Decode result is :"+decryResult);} catch (Exception e1) {e1.printStackTrace();}}

测试结果

全代码
public class DesUtils {private static final String PASSWORD = "9588028820109132570743325311898426347857298773549468758875018579537757772163084478873699447306034466200616411960574122434059469100235892702736860872901247123456";public DesUtils() {}/*** 加密* @param datasource* @return*/public static String encrypt(String datasource) {try{DESKeySpec desKey = new DESKeySpec(PASSWORD.getBytes());//创建一个密匙工厂,获取secretKeySecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey secretKey = keyFactory.generateSecret(desKey);//指定获取DES的Cipher对象Cipher cipher = Cipher.getInstance("DES");//用密匙初始化Cipher对象cipher.init(Cipher.ENCRYPT_MODE, secretKey, new SecureRandom());//数据加密return parseByte2HexStr(cipher.doFinal(datasource.getBytes("utf-8")));}catch(Throwable e){e.printStackTrace();}return null;}/*** 解密* @param src* @return*/public static String decrypt(String src){try{// 创建一个DESKeySpec对象,PASSWORD可任意指定DESKeySpec desKey = new DESKeySpec(PASSWORD.getBytes());// 创建一个密匙工厂SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");// 生成密钥SecretKey secretkey = keyFactory.generateSecret(desKey);// 指定获取DES的Cipher对象Cipher cipher = Cipher.getInstance("DES");// 用密匙初始化Cipher对象cipher.init(Cipher.DECRYPT_MODE, secretkey, new SecureRandom());// 真正开始解密操作return new String(cipher.doFinal(parseHexStr2Byte(src)));}catch(Throwable e){e.printStackTrace();}return null;}/**将二进制转换成16进制* @param buf* @return*/public static String parseByte2HexStr(byte buf[]) {StringBuffer sb = new StringBuffer();for (int i = 0; i < buf.length; i++) {String hex = Integer.toHexString(buf[i] & 0xFF);if (hex.length() == 1) {hex = '0' + hex;}sb.append(hex.toUpperCase());}return sb.toString();}/**将16进制转换为二进制* @param hexStr* @return*/public static byte[] parseHexStr2Byte(String hexStr) {if (hexStr.length() < 1) {return null;}byte[] result = new byte[hexStr.length()/2];for (int i = 0;i< hexStr.length()/2; i++) {int high = Integer.parseInt(hexStr.substring(i*2, i*2+1), 16);int low = Integer.parseInt(hexStr.substring(i*2+1, i*2+2), 16);result[i] = (byte) (high * 16 + low);}return result;}}

>>>源码下载链接>>>

java加密算法之DES篇相关推荐

  1. java加密算法之AES篇

    加密 字符串 public static String encode(String encodeKey,String content){try {KeyGenerator keygen= KeyGen ...

  2. java加密算法之base64篇

    转码 String转码byte数组 public static byte[] encodeStringForByte(String source) {return source == null ? n ...

  3. des算法java_Java加密算法笔记--DES算法实现

    Java加密算法笔记--DES算法实现 在使用中发现,经过加密的字符串如果要进行传输,需要使用Base64进行编码,这样能保证加密信息的完整性,确保将来解密成功. import java.securi ...

  4. RC4算法原理、Java实现RC4加密算法、DES AES RC4算法比较

    DES AES RC4算法比较 根据密钥类型的不同,加密算法分为对称和非对称两种.对称加密系统是指加密和解密均采用同一把密钥. 对称加密算法是最常用的加密算法,优势在于算法公开,计算量小,加密效率高. ...

  5. Java加密算法—对称加密(DES、AES)

    目录 1.概述 2.加密模式 2.1 ECB 2.2 CBC 3.填充模式 4.对称加密.解密实现 1.概述 对称加密就是采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,也称为单密 ...

  6. [转]Java加密算法

    如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorit ...

  7. 各种Java加密算法

    各种Java加密算法 您的评价:           如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要 ...

  8. java加密算法入门(三)-非对称加密详解

    1.简单介绍 这几天一直在看非对称的加密,相比之前的两篇内容,这次看了两倍多的时间还云里雾里的,所以这篇文章相对之前的两篇,概念性的东西多了些,另外是代码的每一步我都做了介绍,方便自己以后翻阅,也方便 ...

  9. 【加密技术】Java加密算法

    如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorit ...

  10. 对称密钥加密算法 对称轮数_选择Java加密算法第2部分–单密钥对称加密

    对称密钥加密算法 对称轮数 抽象 这是涵盖Java加密算法的三部分博客系列的第2部分. 该系列涵盖如何实现以下功能: 使用SHA–512散列 AES–256 RSA–4096 这第二篇文章详细介绍了如 ...

最新文章

  1. Matlab与线性代数--矩阵的LU分解
  2. Java接口四个类四则运算_用JAVA设计一个接口,声明有关算术运行的方法,并创建四个应用该接口的类,分别进行+-*/四则运算...
  3. xv6解析-- 多处理器操作
  4. Unity游戏中的一些规范和优化建议
  5. Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一)
  6. SQL Server权限设置
  7. 女生适合当程序员吗?
  8. Nodejs内存控制详解(上篇)
  9. 蓝桥杯 ALGO-115 算法训练 和为T
  10. 无法创建 ActiveX 组件(转载)
  11. 网络安全——lcx的使用
  12. 【php环境搭建/wamp/解释器/下载】
  13. 学爬虫的动力是啥?那肯定就是爬美女图片了。6千多图片看到爽。
  14. 安卓搭建http文件服务器,如何在安卓上搭建http服务器
  15. Linux 脚本执行遇到错误时中止,shell 文件内容替换 sed用法
  16. Class1导数与变化率
  17. Java 生成帮助文档
  18. bms中soh计算方式_BMS算法设计之电池SOH介绍(上)
  19. LeetCode 715. Range 模块
  20. 【ESXi】失败 – “scsi0:0”的磁盘类型 2 不受支持或无效。请确保磁盘已导入

热门文章

  1. 简单的Java商城项目记录
  2. 利用python爬取电影资源
  3. C语言 关键字 | typedef
  4. Linux nvme驱动分析之用户态接口
  5. R语言 打包流程-采坑无数终有果
  6. OpenGL超级宝典(第7版)之第八章基元处理
  7. delphi下载网站文件(支持https协议)
  8. Linux权限管理命令 chmod 详解
  9. 【网络协议】openR调研
  10. clousx6机器人怎么导入词库_clousx6