java加密算法-DES
public class DESUtil {
private static String strdefaultkey = "13456789abcd";//默认的key
private Cipher encryptCipher = null;//加密
private Cipher decryptCipher = null;//解密
public static String byteArr2HexStr(byte[] arrb) {
int len = arrb.length;
StringBuffer sb = new StringBuffer(len * );
for (int i = ; i < len; i++) {
int inttmp = arrb[i];
while (inttmp < ) {
inttmp = inttmp + ;
}
if (inttmp < ) {
sb.append("");
}
sb.append(Integer.toString(inttmp, ));
}
return sb.toString();
}
public static byte[] hexstr2byteatrr(String strin) {
byte[] arrb = strin.getBytes();
int len = arrb.length;
byte[] arro = new byte[len / ];
for (int i = ; i < len; i = i + ) {
String strt = new String(arrb, i, );
arro[i / ] = (byte) Integer.parseInt(strt, );
}
return arro;
}
// public DesUtils() throws Exception { this(strDefaultKey); }
public DESUtil() throws Exception {
this(strdefaultkey);
}
public DESUtil(String strdefaultkey2) throws Exception {
Security.addProvider(new SunJCE());
Key key = getKey(strdefaultkey2.getBytes());
encryptCipher = Cipher.getInstance("DES");
encryptCipher.init(Cipher.ENCRYPT_MODE, key);
decryptCipher = Cipher.getInstance("DES");
decryptCipher.init(Cipher.DECRYPT_MODE, key);
}
public byte[] encrypt(byte[] arrb) throws Exception {
return encryptCipher.doFinal(arrb);
}
public String encrypt(String str) throws Exception {
return byteArr2HexStr(encrypt(str.getBytes()));
}
public byte[] decrypt(byte[] arrB) throws Exception {
return decryptCipher.doFinal(arrB);
}
public String decrypt(String strIn) throws Exception {
return new String(decrypt(hexstr2byteatrr(strIn)));
}
private Key getKey(byte[] arrBTmp){
byte[]arrB=new byte[];
for(int i=;i<arrBTmp.length&&i<arrB.length;i++){
arrB[i]=arrBTmp[i];
}
// 生成密钥
Key key=new javax.crypto.spec.SecretKeySpec(arrB,"DES");
return key;
}
public static void main(String[] args) throws Exception {
String test="ksjdfksjdflk;342315.,,52256266322555124123225555";
DESUtil des = new DESUtil("kj;skldjfklsdj,.-=sdfjj;f'wons2862485");//自定义key值
String b = des.encrypt(test);//加密
System.out.println("加密后:"+b);
String a= des.encrypt(test);
//DateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm SSS");
System.out.println("解密后"+des.decrypt(a));//解密
}
}
java加密算法-DES的更多相关文章
- 常用加密算法的Java实现总结(二) ——对称加密算法DES、3DES和AES
1.对称加密算法 1.1 定义 对称加密算法是应用较早的加密算法,技术成熟.在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yue)一起经过特殊加密算法处理后,使其变成复杂的加密密文发 ...
- Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密
Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密 二.利用加密算法DES实现java代码加密 传统的C/C++自动带有保护机制,但java不同,只要 ...
- Atitit.加密算法 des aes 各个语言不同的原理与解决方案java php c#
Atitit.加密算法 des aes 各个语言不同的原理与解决方案java php c# 1. 加密算法的参数::算法/模式/填充 1 2. 标准加密api使用流程1 2.1. Md5——16bi ...
- [转] 对称加密算法DES、3DES
转自:http://www.blogjava.net/amigoxie/archive/2014/07/06/415503.html 1.对称加密算法 1.1 定义 对称加密算法是应用较早的加密算法, ...
- 对称加密算法DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES。
对称加密算法:DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES. 1.对称加密算法 1.1 定义 对称加密算法是应用较早的加密算法,技术成熟.在对称加密算法中,数据发信方将明文 ...
- java加密算法入门(二)-对称加密详解
1.简单介绍 什么是对称加密算法? 对称加密算法即,加密和解密使用相同密钥的算法. 优缺点: 优点:算法公开.计算量小.加密速度快.加密效率高. 缺点: (1)交易双方都使用同样钥匙,安全性得不到保证 ...
- java加密算法入门(三)-非对称加密详解
1.简单介绍 这几天一直在看非对称的加密,相比之前的两篇内容,这次看了两倍多的时间还云里雾里的,所以这篇文章相对之前的两篇,概念性的东西多了些,另外是代码的每一步我都做了介绍,方便自己以后翻阅,也方便 ...
- 对称加密算法DES、3DES和AES 原理总结(转载)
1.对称加密算法 1.1 定义 对称加密算法是应用较早的加密算法,技术成熟.在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yue)一起经过特殊加密算法处理后,使其变成复杂的加密密文发 ...
- 一个java的DES加密解密类转换成C#
一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //import java.util.regex.P ...
随机推荐
- preg_match 第三个参数,
//请修改变量p的正则表达式,使他能够匹配str中的姓名 $p = '/name:([\w\s]+)/'; $str = "name:steven jobs"; preg_matc ...
- 查看rpm包spec文件
$ rpm --scripts -qp kernel-2.6.32-431.el6.x86_64.rpm
- Kubernetes 使用 ingress 配置 https 集群(十五)
目录 一.背景 1.1 需求 1.2 Ingress 1.3 环境介绍 二.安装部署 2.1.创建后端 Pod 应用 2.2 创建后端 Pod Service 2.3.创建 ingress 资源 2. ...
- Spring boot使用Aspose.Slides操作ppt转PDF、转图片
最近要将ppt转为PDF和图片,Apache poi ,jacob都试了下 Apache poi 转图片乱码,处理了,还会存在部分乱码 jacob对系统依赖比较大,必须是windows还得安装MS O ...
- SpringBoot系列教程web篇之Post请求参数解析姿势汇总
作为一个常年提供各种Http接口的后端而言,如何获取请求参数可以说是一项基本技能了,本篇为<190824-SpringBoot系列教程web篇之Get请求参数解析姿势汇总>之后的第二篇,对 ...
- QT 安装 配置过程
QT, QT creator的安装,环境配置: 需要根据这个连接重新梳理一遍:https://blog.csdn.net/win_turn/article/details/50465127 1)一种方 ...
- torch7安装的坑
https://github.com/torch/torch7/issues/1086 sudo su export TORCH_NVCC_FLAGS="-D__CUDA_NO_HALF_O ...
- 【Linux】多线程同步的四种方式
背景问题:在特定的应用场景下,多线程不进行同步会造成什么问题? 通过多线程模拟多窗口售票为例: #include <iostream> #include<pthread.h> ...
- 【面试】IP数据报格式分析
(除选项外的报头区总共20个字节) 1)版本:IPV4/IPV6 2)头长度:报头区长度,用于计算数据区的开始位置,比如头长度为6,代表报头区长度为6*4个字节,头长度的单位为4字节,所以报头区长度不 ...
- poj 1095 题解(卡特兰数+递归
题目 题意:给出一个二叉树的编号,问形态. 编号依据 1:如果二叉树为空,则编号为0: 2:如果二叉树只有一个节点,则编号为1: 3:所有含有m个节点的二叉树的编号小于所有含有m+1个节点的二叉树的编 ...