DES加密

maven依赖:

 <!-- DES --><dependency><groupId>javax.xml.rpc</groupId><artifactId>javax.xml.rpc-api</artifactId><version>1.1.1</version></dependency>

DESUtil类:

package common;import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;
import java.security.NoSuchAlgorithmException;/*** @program: Demo* @Date: 2019/2/20 20:59* @Author: LiJc* @Description:*/
public class DESUtil {/***  生成KEY*/public static byte[] getKey(){KeyGenerator keyGenerator = null;try {keyGenerator = KeyGenerator.getInstance("DES");} catch (NoSuchAlgorithmException e) {e.printStackTrace();System.out.println("----------------KEY生成失败!");return null;}keyGenerator.init(56);SecretKey secretKey = keyGenerator.generateKey();byte[] byteKey = secretKey.getEncoded();return byteKey;}/*** DES加密** @param context* @return*/public static byte[] desEncrypt(String context, String key) {try {// KEY转换DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8"));SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("DES");SecretKey conventSecretKey = secretKeyFactory.generateSecret(desKeySpec);// 加密Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, conventSecretKey, new IvParameterSpec(key.getBytes("UTF-8")));return cipher.doFinal(context.getBytes("UTF-8"));} catch (Throwable e) {e.printStackTrace();return null;}}/*** DES解密** @param context* @return*/public static byte[] desDecrypt(byte[] context, String key) {try {// KEY转换DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8"));SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("DES");SecretKey conventSecretKey = secretKeyFactory.generateSecret(desKeySpec);// 解密Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");cipher.init(Cipher.DECRYPT_MODE, conventSecretKey, new IvParameterSpec(key.getBytes("UTF-8")));return cipher.doFinal(context);} catch (Throwable e) {e.printStackTrace();return null;}}
}

单元测试:

package common;import org.apache.commons.codec.binary.Base64;
import org.junit.Test;/*** @program: Demo* @Date: 2019/2/20 21:00* @Author: LiJc* @Description:*/
public class DESTest {@Testpublic void test1(){String deskey = "password";//des密钥//长度8位String content = "真香警告!"; //内容System.out.println("DES原始加密内容为:"+content);//加密byte[] encryptbyte =  DESUtil.desEncrypt(content, deskey); //加密后返回为字节数组String s1 = Base64.encodeBase64String(encryptbyte);System.out.println("DES加密后内容为:"+ s1);//解密byte[] decryptbyte = DESUtil.desDecrypt(Base64.decodeBase64(s1), deskey);  //将加密后返回的字节数组进行解密System.out.println("DES解密后内容为:"+ new String(decryptbyte));}
}

测试结果:

DES加密解密-java相关推荐

  1. des加密解密JAVA与.NET互通实例

    JAVA版本 import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFacto ...

  2. java 实现 DES加密 解密算法

    DES算法的入口参数有三个:Key.Data.Mode.其中Key为8个字节共64位,是DES算法的工作密钥:Data也为8个字节64位,是要被加密或被解密的数据:Mode为DES的工作方式,有两种: ...

  3. DES加密解密算法Java实现

    DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小.这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半.使用子密钥对其中一半应 ...

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

    java的DES加密解密辅助类 package temptest; import java.io.IOException; import java.io.UnsupportedEncodingExce ...

  5. Android平台和java平台 DES加密解密互通程序及其不能互通的原因

    为什么80%的码农都做不了架构师?>>>    网上的demo一搜一大堆,但是,基本上都是一知半解(包括我).为什么呢?我在尝试分别在两个平台加密的时候,竟然发现Android DE ...

  6. des加解密java c#,C#编写DES加密、解密类

    这个C#类封装的DES加密解密,可以使用默认秘钥进行加密.解密,也可以自定义秘钥进行加密.解密,调用简单方便. 示例一: using System; using System.Security.Cry ...

  7. 在Java中使用DES加密解密算法

    import javax.crypto.*; import javax.crypto.spec.DESKeySpec; import java.security.NoSuchAlgorithmExce ...

  8. java des加密解密_Java实现的DES加密解密工具类实例

    本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import ...

  9. [转]JAVA与.NET DES加密解密

    [转]原文地址:http://www.cnblogs.com/prince3245/archive/2010/03/23/1692630.html JAVA与.NET DES加密解密 前几天做了个项目 ...

  10. Java DES 加密解密

    1.加密的相关概念 1.明文:被隐蔽的消息称作明文(plaintext) 2.密文:隐蔽后的消息称作密文(ciphertext) 3.加密:将明文变换成密文的过程称作加密(encryption) 4. ...

最新文章

  1. 2019了,互联网研发是不是都快要被淘汰了?
  2. 《Java 核心技术卷1 第10版》学习笔记------异常
  3. 程序员:最绝望的面试代码写了4个小时,就是不运行!最终收到15K的offer
  4. 第十九章 7 Data类
  5. CodeForces - 1370E Binary Subsequence Rotation(思维)
  6. 【渝粤题库】陕西师范大学700002 细胞生物学
  7. ubuntu 10.04 install vbox site
  8. 使用方法_山西硅肥使用方法
  9. 阿里巴巴交易平台技术揭秘
  10. Kelihos荣升恶意软件之王
  11. 信息工程与计算机科学就业前景,信息与计算机科学就业前景及方向揭秘
  12. 苹果xr十大隐藏功能_苹果手机隐藏的功能
  13. oracle 菜单不见了,开始菜单不见了怎么办 开始菜单不见了解决方法【详解】
  14. 什么是CV?CV和resume有什么区别?
  15. layui 表格行单击事件选中行前的单选框
  16. 渲染树(render树)是什么?
  17. android话费充值界面按钮,安卓手机充值公交卡的详细操作
  18. W3school js学习笔记
  19. Java 1.廖雪峰教程
  20. 怎么设置电脑视频的倍数播放?

热门文章

  1. php 压缩动态gif,在PHP中压缩GIF图像质量?
  2. 读后感系列3:《人类简史》尤瓦尔·赫拉利(一)
  3. PhotoShop - 建立剪切蒙版
  4. oppoA37m rom固件刷机包下载 免费下载 解锁专用
  5. deepfacelab安卓版_DeepFaceLab2.0中文版
  6. 区块链之零知识证明(zk-SNARK从小白到明白)
  7. Linux中如何设置静态IP和动态ip设定
  8. JAVA发布栅格图层_简单实现栅格布局的两种方式
  9. matlab生成手机app,matlab使用App designer生成可独立运行的app
  10. 手机app开发(新手教程)