欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PKCS5Padding

程序员文章站 2022-06-07 19:12:22
...
    最近跟一个同事搞数据加密传输,加密算法用的是des,他用delphi做客户端,我用java做服务器。java做这个很简单,几句话就写好了,delphi没有现成的类库可以做这个,他从网上下载了一段代码。一开始很顺利,我的密文他能解,后来发现他的密文我解不了,这下抓瞎了。后来看des算法的介绍,水平有限,也看不出名堂来PKCS5Padding
            
    
    博客分类: JAVA Delphi算法QQGoogleJDK  不过反复看了几遍,看到一句“加密的数据不足64位,要补足64位”,突然就想到,会不会是补足的方式不同呢?
    反正jce没有源代码,先从delphi看起,果然,在不足8位的时候,他下载的那段代码是用0来填充的。java填的是几呢? 虽然没有代码,还是可以穷举的,毕竟byte就256个数字,写了个循环,测试了一下,发现了,用“中国”做明文时补的是4个字节的4,用“Edit1”做明文,补充的就是3个字节的3,遂作恍然大悟状,这不是缺几个字节就补几吗。把delphi代码改了一下,果然没问题了,可是多测了几个明文之后,发现还是有不对的,dfadsfsdfsdfsdfsdakfjlfjsdlks这样的一段跟密文一样的明文,该如何找出问题来?
     不过还好有jdk帮助文件,翻查了一下关于Cipher的几个类的说明,注意到了PKCS5Padding这个东西,google一下,恍然大悟,原来在恰好8个字节时还要补8个字节的8啊。
    说白了,还是知识面太窄,对加密解密的东西不了解啊。