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

已有一段 JAVA 的 MD5 函数,需要一个可以返回同样结果的 PHP 函数,我写了一个函数,但是有时结果相同,有时不同

  •  
  •   qiayue · 2015-01-14 15:30:31 +08:00 · 2508 次点击
    这是一个创建于 3596 天前的主题,其中的信息可能已经有所发展或是发生改变。
    (gist 放帖子内容最后了)
    目前发现:
    signDataWithMD5Key("v2ex.com", "123456") 返回值是 VAUtitqCZKQpYD+5frUNfQ==
    md5_by_key("v2ex.com", "123456") 返回值也是 VAUtitqCZKQpYD+5frUNfQ==
    也就是说两者结果一致

    但是,下面的情况就不一致了
    要加密的字符串都是
    timestamp=2014-12-19 10:10:10.234&content=gvNK0T++B/sMeylEgUI6AoCV/MZjwcEKA703GgDNrss/iIBBaEcaR5Me4M/6tCH2SPtKBg2dy9NR\r\nXjPFL6Cq4zh6P/jqEO4tMYFQpPGyCiDypB7bDtGVlUkF6i1lhkSSuffbjYuRS5XOnaMR1m7Oet72\r\ndxILjue7qcvusNvT6+eu92ajWIgbkZnWRcStdzjhA3/e9ZrlJBnHrpRjt0l9MC6idJR8s9rsStdf\r\nW65O5+ei+gBOB8tTMpeiuEDFXpvVnzhB1PfurZk6ArNzau6j3p385U873uOiyvhy6TVlyqheuJ3y\r\n/HXpB4k1z3pMr40g5PKlfaJMN52avM2FF2YqUCTme0Wasx9amKqoWrDkD90lveividnq4ooXH/NV\r\nVPX0gYLdEfggXg7rF4q9Na9lmSRxwyd/58BiwRkjk3+MWNCuVw6EctTMtV5BCP4vuTz4iwU5yTYm\r\nh16Zy1QwdZ+oLUoLBI63mgU9sbVFUmGZgTisvhAwKXf25bFhpyBUmS+9
    key 都是 123456
    Java 的 signDataWithMD5Key 得到的结果是 sde2Y178HtqCR08ldXmfxQ==
    php 的 md5_by_key 得到的结果是 V3//cwX5ldkNU73R58GSyQ==

    我真正的问题是,该如何写一个跟 java 的 signDataWithMD5Key 得出一样结果的 php 函数

    5 条回复    2015-01-14 15:49:24 +08:00
    mhycy
        1
    mhycy  
       2015-01-14 15:41:34 +08:00   ❤️ 1
    转义问题
    字符串中有\r\n等字符
    在PHP中,使用双引号引用这段文字并输出的结果是sde2Y178HtqCR08ldXmfxQ==与JAVA相符
    mhycy
        2
    mhycy  
       2015-01-14 15:43:59 +08:00
    qiayue
        3
    qiayue  
    OP
       2015-01-14 15:46:00 +08:00
    我发现了,是因为 \ 的原因,把 \ 替换为其他字符,或者变成双斜杠,结果就变成一样了
    qiayue
        4
    qiayue  
    OP
       2015-01-14 15:48:28 +08:00
    @mhycy 谢谢,问完了,我就意识到问题在哪里了
    mhycy
        5
    mhycy  
       2015-01-14 15:49:24 +08:00
    @qiayue 解决了就好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1097 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:18 · PVG 03:18 · LAX 11:18 · JFK 14:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.