博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DES 加密----笔记
阅读量:7059 次
发布时间:2019-06-28

本文共 1353 字,大约阅读时间需要 4 分钟。

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

 

   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的密文错误传播的缺点      DES的几种填补方式    DES是对64位数据的加密算法,如数据位数不足64位的倍数,需要填充,补充到64位的倍数。

   NoPadding    API或算法本身不对数据进行处理,加密数据由加密双方约定填补算法。例如若对字符串数据进行加解密,可以补充\0或者空格,然后trim

   PKCS5Padding    加密前:数据字节长度对8取余,余数为m,若m>0,则补足8-m个字节,字节数值为8-m,即差几个字节就补几个字节,字节数值即为补充的字节数,若为0则补充8个字节的8

 

转载于:https://www.cnblogs.com/hubcarl/articles/3109538.html

你可能感兴趣的文章
windows调整网卡访问顺序
查看>>
我的php学习笔记(42) PHP通过mail()或Socket发从邮件
查看>>
Mysql-主从精简配置
查看>>
ROM 、RAM和FLASH 的区别
查看>>
深入挖掘vsftpd服务
查看>>
使用smtplib发送E-mail
查看>>
C#窗体控件更新(四)
查看>>
solr部署
查看>>
Linux命令之umask
查看>>
浏览器对象的各种宽高
查看>>
python学习笔记--虫师
查看>>
802.1x登录认证
查看>>
我的友情链接
查看>>
Cobbler无人值守安装
查看>>
××× 专线
查看>>
怎样在 ubuntu 上安装 Linux 3.11 内核
查看>>
Citrix XenApp Lic指向设置
查看>>
移动视频技术
查看>>
U盘安装Linux系统Centos5.x中遇到的问题及解决方案
查看>>
P1063 能量项链(区间dp)
查看>>