DES加密算法细解

本文详细介绍了DES加密算法的使用,包括ECB、CBC、CFB和OFB四种模式,以及PKCS5Padding等填充方式。在CBC模式中,前一组密文的错误会传播到下一组,而OFB模式则避免了这种错误传播。DES加密需要将数据填充到64位的倍数,PKCS5Padding是一种常见的填充方式,根据不足的字节数填充对应数值。
摘要由CSDN通过智能技术生成

enc = Cipher.getInstance("DES/CBC/PKCS5Padding"); keySpec = new SecretKeySpec(key, "DES");//key ivSpec = new IvParameterSpec(iv);//iv enc.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); enc.doFinal(indata);//encrypt

DES可以有这几种模式:  Electronic Codebook (ECB) , Cipher Block Chaining (CBC) , Cipher Feedback (CFB) ,  Output Feedback (OFB)   最基本的是ECB模式,CBC和其他模式都是改进。  ECB模式的缺点是相同的明文加密成相同的密文,明文的规律带到密文。\\ 因为DES是一种block cipher,一个block要8个字节,所以要加密的东西要分成8字节的整数倍,不足的就填充。  PKCS5Padding这种填充,填的字节代表所填字节的总数:   比如差三个字节的话填为 @@@@@333  差7个字节就填为        @7777777  没有差就填             88888888   这样只要读出最后一个字节的内容就知道哪些字节是填充的。   其他填充方式还有:  ISO10126-2Padding  ISO7816-4Padding  X9.23Padding  TBCPadding  ZeroBytePadding


http://www.iteye.com/topic/152405

http://www.cnblogs.com/janken/archive/2012/04/05/2432930.html  

   DES的几种工作方式


第一种电子密本方式(ECB)    将明文分成n个64比特分组,如果明文长度不是64比特的倍数,则在明文末尾填充适当数目的规定符号。对明文组用给定的密钥分别进行加密,行密文C=(C0,C1,……,Cn-1)其中Ci=DES(K,xi),i=0,1,…..,n-1。     第二种密文分组链接方式(CBC)    在CBC方式下,每个明文组xi在加密前与先一组密文按位模二加后,再送到DES加密,CBC方式克服了ECB方式报内组重的缺点,但由于明文组加密前与一组密文有关,因此前一组密文的错误会传播到下一组。     第三种密文反馈方式(CFB),可用于序列密码    明文X=(x0,x1,……,xn-1),其中xi由t个比特组成0   第四种输出反馈方式(OFB),可用于序列密码    与CFB唯一不同的是OFB是直接取DES输出的t个比特,而不是取密文的t个比特,其余都与CFB相同。但它取的是DES的输出,所以它克服了CFB的密文错误传播的缺点     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值