PKCS5Padding

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值