在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近在做一个php和.net共同组成的项目,接收.net部分传送过来的一个经md5过的数据,我惊奇的发现,居然和php进行md5的结果不同,这是为啥呢? .net端程序是这么写的: System.Text.ASCIIEncoding encoding=new System.Text.ASCIIEncoding(); php端程序是这么写的: $keymd5=base64_encode(md5("xutf")); 这样下去,程序没法写了,同样的操作为什么结果不同呢? 原来php的md5函数输出的结果是转换成16位表示的md5结果,而.net的md5.ComputeHash方法输出的结果是原始的md5结果。(注:php5的md5函数string md5 ( string str [, bool raw_output] )开始支持输出原始结果,参数raw_output只支持php5,但是我在使用php4) 如果想让php的结果等同于.net的结果,那么需要对md5函数的结果进行16进制字符串到标准字符串的转换。 $md5hex=md5("xutf"); 如果想让.net的结果等同于php的结果,那么需要把md5.ComputeHash方法输出的结果转换成16进制字符串,那么.net程序应该改为: System.Text.ASCIIEncoding encoding=new System.Text.ASCIIEncoding(); StringBuilder sb = new StringBuilder(); |
2022-07-18
2022-08-17
2022-11-06
2022-07-29
2022-08-18
请发表评论