目前客户端使用的。
import java.security.Key;
import java.security.MessageDigest;
import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.Cipher;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;
public class EncryptUtil {
public final static String DES = "DES";
public final static String MD5 = "MD5";
static AlgorithmParameterSpec iv = null;// 加密算法的参数接口,IvParameterSpec是它的一个实现
private static Key key = null;
public static String encode(String sKey) throws Exception {
String sKeyFormat = "ICITIC_PWD";
byte[] inputByteArray = sKey.getBytes();
byte[] desKey = getMD5ofStr(sKeyFormat).substring(0, 8).getBytes();
byte[] desIV = getMD5ofStr(sKeyFormat).substring(0, 8).getBytes();
CryptoTools(desKey, desIV);
Cipher enCipher = Cipher.getInstance("DES/CBC/PKCS5Padding");// 得到加密对象Cipher
enCipher.init(Cipher.ENCRYPT_MODE, key, iv);// 设置工作模式为加密模式,给出密钥和向量
byte[] pasByte = enCipher.doFinal(inputByteArray);
StringBuffer sb = new StringBuffer();
sb.append(bytes2HexString(pasByte));
return sb.toString();
}
// 设置加密工具
private static void CryptoTools(byte[] DESkey, byte[] DESIV)
throws Exception {
DESKeySpec keySpec = new DESKeySpec(DESkey);// 设置密钥参数
iv = new IvParameterSpec(DESIV);// 设置向量
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);// 获得密钥工厂
key = keyFactory.generateSecret(keySpec);// 得到密钥对象
}
// MD5加密
private static String getMD5ofStr(String sKeyFormat) {
try {
byte[] str = sKeyFormat.getBytes();
MessageDigest md = MessageDigest.getInstance(MD5);
md.update(str);
byte[] b = md.digest();
return bytes2HexString(b);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
try {
System.out.println(encode("888888"));
} catch (Exception e) {
e.printStackTrace();
}
}
public static String bytes2HexString(byte[] bytes) {
String hs = null;
if (bytes != null) {
final int size = bytes.length;
if (size > 0) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < size; i++) {
String tmp = (java.lang.Integer
.toHexString(bytes[i] & 0XFF));
if (tmp.length() == 1) {
sb.append("0" + tmp);
} else {
sb.append(tmp);
}
}
hs = sb.toString().toUpperCase();
}
}
return hs;
}
}
结果:
BB8DF9AB68109156
分享到:
相关推荐
在3DES中,数据首先用一个密钥进行DES加密,然后用第二个密钥进行DES解密,最后再用第三个密钥进行DES加密。这种三次应用DES的过程显著增强了加密的强度,使得密钥长度达到了168位,即使在现代计算能力下也极难破解...
3. 加密和解密操作是 DES 加密解密算法的核心,使用子密钥和加密解密算法来实现。 4. 基本操作是 DES 加密解密算法的基础,包括循环左移、IP 置换、扩展置换、选择函数 S 和异或操作。 DES 加密解密算法的 C 语言...
对数据进行单DES或者3DES加密或者解密,如果密码长度为8字节则为DES加密或者解密
3DES加密解密的全工具类,快速帮助新人进行3Des加密解密
DES加密解密(c++实现)
用C语言实现了DES、三重DES(3DES)的加解密,支持ECB、CBC模式。 ECB支持64位密钥; CBC支持128和192位密钥
本项目是使用Visual C++实现3DES加解密功能的一个实例,下面将详细介绍3DES算法及其在Visual C++中的实现。 3DES,全称为三重DES,是对DES(Data Encryption Standard)的加强版。DES是一种块密码,采用64位的数据...
本篇文章将详细探讨在C++中实现3DES和Base64加解密的技术要点。 3DES(Triple Data Encryption Algorithm)是一种对称加密算法,它是DES(Data Encryption Standard)的加强版。DES使用56位的密钥,3DES通过三次...
描述中提到的"加出来和你文档上的不一样我负责"可能是指提供的代码实现与文档中描述的3DES加密解密方法可能存在差异,但开发者对此负责,意味着他们对代码的正确性和可靠性有信心。"DES3encrypt"和"DES3decrypt"是...
在JavaScript环境中,DES加解密可以用于保护敏感数据,如用户密码、API密钥等,确保在网络传输中数据的安全性。 在JavaScript中实现DES加解密,通常需要借助库,如`crypto-js`。这个库提供了多种加密算法,包括DES...
des加密解密工具
4. **加解密过程**:DES的加密和解密过程非常相似,只是在某些步骤中使用了相反的操作。解密时,只需将加密过程中的子密钥顺序反转,并应用相反的非线性函数。 在给定的“des加密例程”中,可能包含了一个调用动态...
在这个项目中,我们将探讨如何使用MFC在VC++环境中实现DES加密和解密。 首先,DES是一种块加密算法,它将明文数据分为64位的块进行处理。但是,由于其中7位是奇偶校验位,实际有效密钥长度为56位。DES通过一系列...
DES加密解密工具DES加密解密工具DES加密解密工具DES加密解密工具DES加密解密工具DES加密解密工具DES加密解密工具DES加密解密工具DES加密解密工具
下面我们将详细讨论C#实现DES加解密的相关知识点。 1. **基本概念**: - **对称加密**:加密和解密使用同一密钥。 - **DES算法**:基于Feistel结构,通过多次迭代实现数据的加密和解密。 - **密钥长度**:DES的...
支持3DES加密 解密 类中利用函数重载的方式 实现两种加密方式 加密后为16进制字符串 使用方法: 实例化一个对象 然后就可以随便用了。 如 DES加密 解密 CString sd,sd2; yxyDES2 des; sd=des.DESr("wan123456",...
标题 "3DES加密解密" 涉及到的是数据安全领域中的一种...在Java开发中,可以通过Bouncy Castle这样的加密库实现3DES的加解密操作。提供的文件可能包含3DES算法的Java实现代码,可以进一步研究学习其工作原理和应用。
为了增强安全性,出现了3DES(Triple DES),它通过应用DES三次,使用两个或三个不同的密钥,极大地提升了加密强度。 在使用"DES加密解密工具"时,用户应遵循一些最佳实践,例如使用随机生成且足够复杂的密钥,不...
3. **JavaScript实现DES加密解密**: JavaScript中没有内置的DES库,通常需要依赖第三方库,如`crypto-js`。这个库提供了DES加密解密的功能,使用方式类似于Java,先生成密钥,然后调用相应的加密或解密函数。 4. ...
然而,由于其密钥长度相对较短,现代计算机的强大计算能力已使得DES的加密强度相对较低,通常会采用3DES(Triple DES)或更先进的加密算法如AES来增强安全性。 MFC是微软提供的一套C++类库,用于简化Windows应用...