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. jconsole工具使用----jvm内存泄漏问题
  2. static在类中的定义,和enum的用法
  3. 打印机支持打印html页面吗,vue下调用打印功能,打印html页面
  4. 双系统引导修复与引导项删除
  5. I Hate It HDU - 1754 (线段树)
  6. 每日一笑 | 实名举报校长拿两份工资!
  7. 【转】C#中相同不同程序集存在相同的命名空间的时候的冲突解决办法
  8. Web的系统测试方法
  9. jsp页面科学计数法显示问题的解决办法
  10. flex 注册监听器时传值
  11. FPGA开源IP核下载opencores.org
  12. 短视频抖音广告投放数据分析报告, 游戏行业抖音广告投放占比最多
  13. python画马鞍面_在matlab中怎么画马鞍面?
  14. Regulator的使用
  15. AI经典书单:入门人工智能该读哪些书?
  16. linux 批量ping检测
  17. 21.炫酷的CSS数字j时钟
  18. 问卷调查小程序功能清单
  19. 学专业计算机可以当游戏主播吗,一个专业的游戏主播需要什么配置的电脑
  20. 如何获取管理员权限,修改文件

热门文章

  1. [吴恩达机器学习课程笔记] week four强化学习
  2. Unity如何开发微信小游戏
  3. 从君臣到战友:《谦逊领导力》就是敏捷领导力
  4. 7个等级 容灾等级_容灾的等级
  5. 激光打印机与计算机相连,Hp laserjet1010打印机怎么连接电脑使用?
  6. 微信群二维码被动加了100人了还怎么扫码进入?
  7. OpenKG开源系列|首个多模态开放知识图谱OpenRichpedia (东南大学)
  8. python 等频分箱_数据分箱:等频分箱,等距分箱,卡方分箱,计算WOE、IV
  9. 甲骨文裁员的屠刀最终砍向了西雅图
  10. 【UI设计】扁平化设计之流行色值