我检查一下Android送出的东西跟 服务器接到的东西

楼主: janice001 (真理)   2014-04-18 22:00:34
各位前辈 老师 同学 大家好
我这次写的程式最后用到AES 加解密
过去三天 我一直卡在同一个地方 让我有点儿崩溃
从android 送出加密后讯息 服务器收到后
都会丢出
Input length must be multiple of 16 when decrypting with padded cipher
我参考到网络上的解法是 base64 或者 toHEX 字串来解决
我使用byteToHex来解决这个问题
但问题没有解决
我有确定 客户端跟服务器皆算出同样的一把session key
出问题的程式码在下面 也标记了 出问题的一行程式码
拜托 各位帮我看一下 我的盲点在哪...QAQ
再不行 我可能要试试看 在android 使用 Spongy Castle
在java server 使用 Bouncy Castle 了 ~"~
先谢谢大家了 Orz
服务器 部分程式码 http://chopapp.com/#dommpgst
android 部分程式码 http://chopapp.com/#p1p6qrn3
作者: PsMonkey (痞子军团团长)   2014-04-18 22:38:00
这,我到底是该删还是不该删... [摊手]
作者: cyclone350 (老子我最神)   2014-04-18 23:29:00
server程式:instruction 是什么? Object[] 吗?
楼主: janice001 (真理)   2014-04-18 23:31:00
收到的字串 [0] 放id [1] 放加解密的字串><
作者: cyclone350 (老子我最神)   2014-04-18 23:33:00
看不懂,你说你使用byteToHex,我整份程式码没看到这个既然注明是 hexToByte(instruction[1]); 这行错,你没放hexToByte程式,也没说明instruction,我们要怎么看?hexToByte ... 输入的 s 长度必须为16的倍数刚刚乱测一下api,应该是key长度问题?
楼主: janice001 (真理)   2014-04-19 00:34:00
那我应该怎么作 直接补0 吗? 为什么在Android底下
作者: cyclone350 (老子我最神)   2014-04-19 00:37:00
说错了,不是Key,是加密结果长度必须为16的倍数?
作者: Killercat (杀人猫™)   2014-04-19 00:38:00
? 拿Cipher的时候就有参数要你填padding规则了啊
作者: cyclone350 (老子我最神)   2014-04-19 00:42:00
你在Android code底下的temp就是32位元了吧?你不是把temp传到server解密吗? 更正,是长度为32为什么要补0? AES密文长度不是16的倍数吗?
楼主: janice001 (真理)   2014-04-19 00:50:00
可是不知道为什么传过去就不是了...?我检查一下客户端送出的东西 跟服务器接到的东西好了

Links booklink

Contact Us: admin [ a t ] ucptt.com