DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。
DES算法的入口参数有三个:Key、Data、Mode。其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。
DES 加密源码参考地址(Java 通过 DES 实现加密和解密):http://blog.yoodb.com/yoodb/article/detail/266
如果编写的其他 Java DES 加密解密方式,报 javax.crypto.BadPaddingException: Given final block not properly padded 错误,具体解决方案如下:
将 Cipher cipher = Cipher.getInstance("DES"); 替换为 Cipher cipher = Cipher.getInstance("DES/ECB/NoPadding");
原因是 Cipher cipher = Cipher.getInstance("DES"); 等同于 Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding"); 加密时会得到16长度的字节数组