本文共 1259 字,大约阅读时间需要 4 分钟。
DES常用加密模式:
DES加密填充模式:
Java代码的实现
//此处的key只能是长度为8的字符串,否则会出现异常public byte[] DESEncrype(byte[] data, String key) throws Exception { byte[] keyArr = key.getBytes(); DESKeySpec desKey = new DESKeySpec(keyArr); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey secureKey = keyFactory.generateSecret(desKey); Cipher cipher = Cipher.getInstance("DES/CBC/ISO10126Padding"); //DES算法要求有一个可信任的随机数源,此处使用new IvParameterSpec(keyArr) //尽量不要使用SecureRandom random = new SecureRandom(),因为可能导致跨语言无法正确解密 cipher.init(Cipher.ENCRYPT_MODE, secureKey, new IvParameterSpec(keyArr)); return cipher.doFinal(data);}
public static byte[] DESDecrypt(byte[] src, String key) throws Exception { byte[] keyArr = key.getBytes(); DESKeySpec desKey = new DESKeySpec(keyArr); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey secureKey = keyFactory.generateSecret(desKey); Cipher cipher = Cipher.getInstance("DES/CBC/ISO10126Padding"); cipher.init(Cipher.DECRYPT_MODE, secureKey, new IvParameterSpec(keyArr)); return cipher.doFinal(src);}
转载地址:http://mvtlf.baihongyu.com/