package com.xcong.excoin.utils;
|
|
import java.security.Key;
|
|
import javax.crypto.Cipher;
|
import javax.crypto.KeyGenerator;
|
import javax.crypto.SecretKey;
|
import javax.crypto.SecretKeyFactory;
|
import javax.crypto.spec.DESKeySpec;
|
|
|
public class DES {
|
static String string = "DES";
|
public static void main(String[] args) {
|
DES.jdkDES();
|
}
|
|
public static void jdkDES() {
|
|
try {
|
|
// 生成key//返回生成指定算法密钥的KeyGenerator对象
|
KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");
|
keyGenerator.init(56);//初始化此密钥生成器,使其具有确定的密钥大小
|
SecretKey secretKey = keyGenerator.generateKey();//生成一个密钥
|
byte[] bs = secretKey.getEncoded();
|
|
// key转换
|
DESKeySpec desKeySpec = new DESKeySpec(bs); //实例化DES密钥规则
|
SecretKeyFactory factory = SecretKeyFactory.getInstance("DES"); //实例化密钥工厂
|
Key convertSecretKey = factory.generateSecret(desKeySpec); //生成密钥
|
|
// 加密
|
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
|
cipher.init(Cipher.ENCRYPT_MODE, convertSecretKey);
|
byte[] result = cipher.doFinal(string.getBytes());
|
System.out.println("jdk des encrypt:" + DESUtil.byteToHex(result));
|
|
// 解密
|
cipher.init(Cipher.DECRYPT_MODE, convertSecretKey);
|
result = cipher.doFinal(result);
|
System.out.println("jdk des decrypt:" + new String(result));
|
} catch (Exception e) {
|
// TODO: handle exception
|
e.printStackTrace();
|
}
|
}
|
}
|