V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
haozibi
V2EX  ›  问与答

百度翻译 api 签名问题

  •  
  •   haozibi · 2016-08-27 22:20:41 +08:00 · 2662 次点击
    这是一个创建于 3029 天前的主题,其中的信息可能已经有所发展或是发生改变。

    上午刚用百度翻译百度 api 文档做了个网站https://a-pi.win,发现 api 认证问题: 以下是 sign 的生成方法

    生成 sign :
    >拼接字符串 1
    拼接 appid=2015063000000001+q=apple+salt=1435660288+密钥=12345678
    得到字符串 1 =2015063000000001apple143566028812345678
    >计算签名 sign (对字符串 1 做 md5 加密,注意计算 md5 之前,串 1 必须为 UTF-8 编码)
    sign=md5(2015063000000001apple143566028812345678)
    sign=f89f9594663708c1605f3d736d01d2d4
    

    我觉得 sign 是经过 md5 哈希的,所以 sign 是没有规律的,所以用 6 个 6 的 sign(f379eaf3c831b04de153469d1bec345e)代替 sign ,竟然失败了(提示 Invalid Sign),我想问一下 sign 为什么要这样设计,为什么 6 个 6 的就不行?

    第 1 条附言  ·  2016-08-27 23:24:28 +08:00
    通过 2 楼的点拨我已经明白了

    api 传的参数有很多,除了百度分发的密钥,我把 md5 需要的参数都通过 get 或者 post 传给百度了,百度拥有密钥,百度通过同样的算法进行运算并与 md5 后的 sign 进行对比确认我传输的密钥,从而避免应用被别人抓包获得我的密钥
    9 条回复    2016-08-28 19:30:55 +08:00
    UnisandK
        1
    UnisandK  
       2016-08-27 22:54:29 +08:00   ❤️ 1
    为什么 6 个 6 的就应该可以? sign 随便生成都行那这个参数的意义在哪里
    qqmishi
        2
    qqmishi  
       2016-08-27 23:12:14 +08:00 via Android   ❤️ 1
    你算一遍,百度也要根据你发的数据算一遍,对得上才行,随便写都能过就失去意义了
    haozibi
        3
    haozibi  
    OP
       2016-08-27 23:13:30 +08:00 via Android
    @UnisandK sign 是经过 md5 哈希的,他怎么确认 sign 的准确性, md5 后的 sign 和 6 个 6 能看出区别?
    haozibi
        4
    haozibi  
    OP
       2016-08-27 23:21:10 +08:00 via Android
    @qqmishi 刚刚准备反驳你的时候突然明白了,传的参数有很多,除了百度分发的密钥,我把 md5 需要的参数都通过 get 或者 post 传给百度了,百度拥有密钥,百度通过同样的算法进行运算并与 md5 后的 sign 进行对比确认我传输的密钥,从而避免应用被别人抓包获得我的密钥
    ranran
        5
    ranran  
       2016-08-28 00:08:40 +08:00   ❤️ 1
    楼主问出了我十年前的疑惑。

    如果密码用 MD5 “加密”存在数据库,那么如何验证用户输入的密码?

    哈哈哈哈哈哈
    noe132
        6
    noe132  
       2016-08-28 00:41:39 +08:00   ❤️ 1
    狐吧基佬你好
    haozibi
        7
    haozibi  
    OP
       2016-08-28 08:50:29 +08:00 via Android
    RangerWolf
        8
    RangerWolf  
       2016-08-28 17:39:25 +08:00   ❤️ 1
    试了一下,好像太慢了~~~
    haozibi
        9
    haozibi  
    OP
       2016-08-28 19:30:55 +08:00 via Android
    @RangerWolf 弄着玩的,放在搬瓦工上~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1038 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:33 · PVG 02:33 · LAX 10:33 · JFK 13:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.