本帖最后由 小人国历险记 于 2015-11-16 12:37 编辑
源码没有多少深度,但适合新手参考学习并改进。源码不足之处欢迎交流讨论
(此源码只在此论坛发布,转载请注明作者及出处,以表尊重)
百度新版翻译API调用加密更加安全(用自已服务器“中转”)可以实现APPID和密钥不被 抓包泄露,此源码仅演示如何调用新版API(源码内接口2)
加密规范
为保证接口调用安全,接口采用IP限制和MD5加密签名验证, 签名的计算方法如下:
1、将请求参数 APPID (appid), 翻译query(q), 随机数(salt), 按照 appid q salt的顺序拼接得到串1。
2、在串1后拼接由平台分配的私钥(secret key) 得到串2。
3、对串2做md5,得到sign。
例:APPID:2015063000000001,私钥:12345678,翻译请求:
api.fanyi.baidu.com/api/trans/vip/translate?q=hi&appid=2015063000000001&salt=1435577028&from=zh&to=en
sign的计算方法:
>拼接串1
appid=2015063000000001 salt=1435660288 q=hi
串1=2015063000000001hi1435660288
>拼接串2(平台分配的私钥为12345678)
串2=2015063000000001hi143566028812345678
>计算签名(sign)
sign=md5(2015063000000001hi143566028812345678)
sign=4429c3a63d860eff6d296d3cca5a8183
完整请求为:
api.fanyi.baidu.com/api/trans/vip/translate?q=hi&appid=2015063000000001&salt=1435660288&from=zh&to=en&sign=4429c3a63d860eff6d296d3cca5a8183
[C++] 纯文本查看 复制代码编码说明:【参考源码】
提交翻译的内容编码进行UTF-8转码并转换为URL编码
sign计算MD5时把query(q){提交内容}转换成UTF-8{非URL}编码进行计算
如md5计算时不把提交翻译的内容转换成UTF-8{非URL}编码 返回结果将是【54001 签名错误】
{md5(比较多人卡在此处,为此还请教了@奋斗丶小Z 但由于开发文档也没有明确说明编码问题进行了多次测试才得以成功)}
错误码 含义
52000 成功
52001 请求超时
52002 系统错误
52003 未授权用户
54000 必填参数为空
58000 客户端IP非法
54001 签名错误
54003 访问频率受限
具体请参考:百度翻译开放平台
源码图
QQ截图20151116112426.png (35 KB, 下载次数: 10)
2015-11-16 11:22 上传
吾等为上神所关怀慈悲的信徒
汝不正怀抱慈悲的圣行普济天下
夜深,深藏于夜色云影中羞怯的内心里,翻腾奔放无比的热恋心怀直到把这羞怯的内心变得茫然无存
下载测试
百度翻译API调用范例.zip
(457.91 KB, 下载次数: 698)
2015-11-16 11:34 上传
点击文件名下载附件
下载积分: 吾爱币 -1 CB
【小人国历险记】论坛灌水举报助手 源码http://www.52pojie.cn/thread-427428-1-1.html
【小人国历险记】正则表达式测试器 beta_http://www.52pojie.cn/thread-429940-1-1.html