DES加密依赖JDK6自带的功能,使用默认支持的56位密钥长度,加密具体细节如下:
格式 | 值 |
密钥数组 | 8字节密钥,系统随机生成,双方妥存 |
工作模式 | ECB |
填充方式 | PKCS5Padding |
具体实现:
//DES加密,模式DES/ECB/PKCS5Padding 密钥8字节密钥,系统随机生成,双方妥存
byte[] requestXmlDES = null;
try {
//des 密钥
byte[] desPrivateKey = systemCofingManager.getSystemConfig("").getBytes("UTF-8");//从数据库中或配置属性文件取
DESKeySpec dESKeySpec =new DESKeySpec(desPrivateKey);
//使用算法(DES)、模式(ECB)、填充方案(PKCS5Padding)实例化为加密或解密的类
Cipher c = Cipher.getInstance("DES/ECB/PKCS5Padding");
//返回转换指定算法(DES)的秘密密钥的 SecretKeyFactory 对象。
SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("DES");
//用指定的密钥生成对称密钥
SecretKey secretKey = secretKeyFactory.generateSecret(dESKeySpec);
//用加密模式和密钥初始化此 Cipher。
c.init(Cipher.ENCRYPT_MODE, secretKey);
requestXmlDES = c.doFinal(requestXml.getBytes("UTF-8"));
} catch (Exception e) {
e.printStackTrace();
log.info("des加密请求报文出错",e);
}