DES加密/解密

模式 填充 偏移量 密文编码
密钥
DES是由IBM公司研制的一种对称加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准。DES是一个分组加密算法,就是将明文分组进行加密,每次按顺序取明文的一部分。一个典型的DES以64位为分组,加密解密用算法相同。它的密钥长度为56位,因为每组第8位是用来做奇偶校验,密钥可以是任意56位的数,保密性依赖于密钥。

DES是一种对称密钥块加密算法。 对称密钥意味着加密和解密使用相同的密钥。 块加密是指将明文划分为多个等长的块,并对每个块进行加密,最后以某种方式将它们拼接在一起。块加密也被称为分组加密。 DES的功能是:给定一个64位的明文和一个64位的密钥,输出一个64位的密文。这个密文可以使用相同的密钥进行解密。实际上,64位的密钥中只有54位是有效的,剩余的位可以忽略,或者用作奇偶校验位。 尽管DES一次只能加密8个字节,但我们可以将明文划分为每8个字节一组的块,以实现对任意长度明文的加密。如果明文的长度不是8个字节的倍数,还需要进行填充。目前流行的填充方式是PKCS7/PKCS5,它们都是简单的方法,用于将任意长度的文本填充为8字节的倍数长度,并且可以方便地恢复原始文本,这里不再详述。 此外,独立地对每个块进行加密并直接拼接是不可行的(这种方式称为电子密码本,ECB模式)。它会导致明文中重复的块产生重复的加密结果,对于像图片这样的数据来说几乎是致命的缺陷。