`

DES加密解密

    博客分类:
  • java
 
阅读更多
package queue;


import java.security.spec.AlgorithmParameterSpec;

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

//DES加密解密
public class DESUtil {

public static void main(String[] args) {
try {
System.out.println(DESUtil.encrypt("wangwang", "huweiyi"));
System.out.println(DESUtil.decrypt("wangwang", "pbiWJ0+ZhUw="));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static byte[] getByte(int mode,String key , byte[] data) throws Exception {
// 创建一个 DESKeySpec 对象,使用 key 中的前 8 个字节作为 DES 密钥的密钥内容。
DESKeySpec desKey = new DESKeySpec(key.getBytes("utf-8"));
//返回转换指定算法的秘密密钥的 SecretKeyFactory 对象。
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//根据提供的密钥规范(密钥材料)生成 SecretKey 对象。
SecretKey securekey = keyFactory.generateSecret(desKey);
// 使用 wangding 中的字节作为 wangding 来构造一个 IvParameterSpec 对象。
AlgorithmParameterSpec paramSpec = new IvParameterSpec("wangding".getBytes("utf-8"));
//返回实现指定转换的 Cipher 对象。
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
// 用密钥和一组算法参数初始化此 Cipher。
cipher.init(mode, securekey, paramSpec);
//按单部分操作加密或解密数据,或者结束一个多部分操作。
byte [] bt = cipher.doFinal(data);
return bt;
}

//加密方法
public static String encrypt(String key, String data) throws Exception {
String str = "";
byte[] bt = getByte(Cipher.ENCRYPT_MODE, key, data.getBytes());
if (bt != null) {
str = new BASE64Encoder().encode(bt);
}
return str;
}

//解密方法
public static String decrypt(String key, String data) throws Exception {
String str = "";
byte [] bt = getByte(Cipher.DECRYPT_MODE, key, new BASE64Decoder().decodeBuffer(data));
if (bt != null) {
str = new String(bt, "utf-8");
}
return str;
}

}
分享到:
评论

相关推荐

    C语言实现DES加密解密算法

    DES加密解密算法的C语言实现 DES(Data Encryption Standard)是一种对称密钥 BLOCK 加密算法,使用 56 位密钥对 64 位数据块进行加密。下面是 DES 加密解密算法的 C 语言实现的知识点总结。 字节与二进制转换 在...

    3DES加密解密工具

    标题中的“3DES加密解密工具”指的是一个用于执行三重数据加密标准(3DES,Triple DES)的软件工具,这种工具通常用于保护敏感数据的安全,确保信息在传输过程中的机密性。3DES是DES(Data Encryption Standard,...

    VB实现DES加密解密算法,vb加密和解密,VBA

    这需要创建一个.NET类库项目,实现DES加密解密功能,然后在VBA中通过CreateObject或早绑定的方式调用这些函数。 以下是VB.NET中实现DES加密解密的简单示例代码: ```vbnet Imports System.IO Imports System....

    用 MFC 实现 DES 加密解密算法

    在实现DES加密解密的过程中,首先需要理解DES的基本步骤,包括初始置换、扩展置换、8轮Feistel网络、逆扩展置换和逆初始置换。在MFC环境中,这些步骤可以通过定义类和函数来实现。例如,可以创建一个名为`CDES`的类...

    DES加密 解密 方法 MFC

    DES加密 解密 方法: DESr DESw 支持3DES加密 解密 类中利用函数重载的方式 实现两种加密方式 加密后为16进制字符串 使用方法: 实例化一个对象 然后就可以随便用了。 如 DES加密 解密 CString sd,sd2; yxyDES2 ...

    DES加密解密VB6.0源代码

    在VB6.0(Visual Basic 6.0)环境中实现DES加密解密是编程中常见的一种需求,主要用于保护敏感数据的安全。下面将详细阐述DES加密解密原理及其在VB6.0中的实现方法。 1. **DES加密原理**: - **初始置换**:将明文...

Global site tag (gtag.js) - Google Analytics