• 隐藏侧边栏
  • 展开分类目录
  • 关注微信公众号
  • 我的GitHub
  • QQ:1753970025
Chen Jiehua

Movies-Server Protocols 

重要更新:此处不再更新,点此查看最新版文档!

加密解密算法

采用AES加密算法/CBC模式/PKCS5Padding补全

密钥:????????????

向量: byte[16],由调用方随机生成

Get请求:

将16位(byte[16])的向量(iv)置于二进制密文头部,再进行base64encode,生成最终的s参数

Post请求:

将16位(byte[16])的向量(iv)置于二进制密文头部,再进行base64encode,最后发送二进制流。

PKCS5Padding规则

1、计算输入长度为L。
2、如果L是16倍数,padding长度为16,padding值为0x10。即在输入后面补齐16字节的0x10。
3、如果L不是16倍数,padding长度为16-L%16,padding值为16-L%16。即在输入后面补齐16-L%16的字节,值为16-L%16。
2和3其实可以根据公式 16-L%16 写成一条规则,这里只是强调2的特殊性,明确并不是不做补齐。

参考:http://www.xjump.me/content.htm?id=72

 

测试用例

接口:http://movies.chenjiehua.me/

原始参数:

token=60035ef9e144c8662591914b219a252d0c93854e

rt=1490000000

加密后生成s参数:

s=XGobIjyl8T4zuiPr+LMGjw07BSBKDC1ecA5PLjmHmUsrR9BhelPl9bmPU40agn6xu4SaCZ2j/jop2LjrAza9NV5F7VoRbeumjRqHxNgL8z4=

GET请求链接:

http://movies.chenjiehua.me/test?s=XGobIjyl8T4zuiPr+LMGjw07BSBKDC1ecA5PLjmHmUsrR9BhelPl9bmPU40agn6xu4SaCZ2j/jop2LjrAza9NV5F7VoRbeumjRqHxNgL8z4=

返回结果:

POST请求链接:http://movies.chenjiehua.me/test

Request Body:XGobIjyl8T4zuiPr+LMGjw07BSBKDC1ecA5PLjmHmUsrR9BhelPl9bmPU40agn6xu4SaCZ2j/jop2LjrAza9NV5F7VoRbeumjRqHxNgL8z4=

返回结果:

其他返回代码说明:http://chenjiehua.me/?p=507

 

代码示例:

Python

参考:https://gist.github.com/crmccreary/5610068 

Android

iOS

需要NSData+AESCrypt、NSData+CommonCrypto.h

 

码字很辛苦,转载请注明来自ChenJiehua《Movies-Server Protocols》

评论