DES加密解密-java
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相关推荐
- des加密解密JAVA与.NET互通实例
JAVA版本 import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFacto ...
- java 实现 DES加密 解密算法
DES算法的入口参数有三个:Key.Data.Mode.其中Key为8个字节共64位,是DES算法的工作密钥:Data也为8个字节64位,是要被加密或被解密的数据:Mode为DES的工作方式,有两种: ...
- DES加密解密算法Java实现
DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小.这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半.使用子密钥对其中一半应 ...
- java des加密类_java的DES加密解密辅助类
java的DES加密解密辅助类 package temptest; import java.io.IOException; import java.io.UnsupportedEncodingExce ...
- Android平台和java平台 DES加密解密互通程序及其不能互通的原因
为什么80%的码农都做不了架构师?>>> 网上的demo一搜一大堆,但是,基本上都是一知半解(包括我).为什么呢?我在尝试分别在两个平台加密的时候,竟然发现Android DE ...
- des加解密java c#,C#编写DES加密、解密类
这个C#类封装的DES加密解密,可以使用默认秘钥进行加密.解密,也可以自定义秘钥进行加密.解密,调用简单方便. 示例一: using System; using System.Security.Cry ...
- 在Java中使用DES加密解密算法
import javax.crypto.*; import javax.crypto.spec.DESKeySpec; import java.security.NoSuchAlgorithmExce ...
- java des加密解密_Java实现的DES加密解密工具类实例
本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import ...
- [转]JAVA与.NET DES加密解密
[转]原文地址:http://www.cnblogs.com/prince3245/archive/2010/03/23/1692630.html JAVA与.NET DES加密解密 前几天做了个项目 ...
- Java DES 加密解密
1.加密的相关概念 1.明文:被隐蔽的消息称作明文(plaintext) 2.密文:隐蔽后的消息称作密文(ciphertext) 3.加密:将明文变换成密文的过程称作加密(encryption) 4. ...
最新文章
- 2019了,互联网研发是不是都快要被淘汰了?
- 《Java 核心技术卷1 第10版》学习笔记------异常
- 程序员:最绝望的面试代码写了4个小时,就是不运行!最终收到15K的offer
- 第十九章 7 Data类
- CodeForces - 1370E Binary Subsequence Rotation(思维)
- 【渝粤题库】陕西师范大学700002 细胞生物学
- ubuntu 10.04 install vbox site
- 使用方法_山西硅肥使用方法
- 阿里巴巴交易平台技术揭秘
- Kelihos荣升恶意软件之王
- 信息工程与计算机科学就业前景,信息与计算机科学就业前景及方向揭秘
- 苹果xr十大隐藏功能_苹果手机隐藏的功能
- oracle 菜单不见了,开始菜单不见了怎么办 开始菜单不见了解决方法【详解】
- 什么是CV?CV和resume有什么区别?
- layui 表格行单击事件选中行前的单选框
- 渲染树(render树)是什么?
- android话费充值界面按钮,安卓手机充值公交卡的详细操作
- W3school js学习笔记
- Java 1.廖雪峰教程
- 怎么设置电脑视频的倍数播放?
热门文章
- php 压缩动态gif,在PHP中压缩GIF图像质量?
- 读后感系列3:《人类简史》尤瓦尔·赫拉利(一)
- PhotoShop - 建立剪切蒙版
- oppoA37m rom固件刷机包下载 免费下载 解锁专用
- deepfacelab安卓版_DeepFaceLab2.0中文版
- 区块链之零知识证明(zk-SNARK从小白到明白)
- Linux中如何设置静态IP和动态ip设定
- JAVA发布栅格图层_简单实现栅格布局的两种方式
- matlab生成手机app,matlab使用App designer生成可独立运行的app
- 手机app开发(新手教程)