### SIGN算法 1. UTF-8编码 2. 升序排序(BDUSS参数始终在最前) 3. 去“&”取MD5 4. 进行urlencode编码 5. 将“&sign=”和MD5追加到尾部 ### PHP实现 ```php function sign(array $arrData, bool $md5StrOnly=false) { if (!(is_array($arrData)&&ksort($arrData))) return false; if (array_key_exists('BDUSS',$arrData)) { $bduss=$arrData['BDUSS']; unset($arrData['BDUSS']); $arrData=['BDUSS'=>$bduss]+$arrData; } $strData=''; $arrData2=array(); foreach ($arrData as $key => $value) { $strData.="{$key}={$value}"; array_push($arrData2,urlencode($key).'='.urlencode($value)); } $md5Str=md5("{$strData}tiebaclient!!!"); if ($md5StrOnly) return $md5Str; return implode('&',$arrData2)."&sign={$md5Str}"; } ```
常规包参数如下,超多参数的说: ![29071445769832.jpg](https://storage.liesauer.net/2017/11/124856918.jpg) - 阅读剩余部分 -
- 阅读剩余部分 -
经测试分析,百度贴吧提交POST数据时,参数并不是无序的,如果参数顺序错误,即使sign对了也照样会出现未知错误。 - 阅读剩余部分 -
[贴吧客户端历史版本 - 百度网盘分享](https://pan.baidu.com/s/1hrLmK64 "贴吧客户端历史版本 - 百度网盘分享") 注意:现在使用旧版API有官方封号风险,请慎重! 注意:大部分包都是网上收集而来的,有可能会混入第三方修改后的包,建议先装一个官方低版本的,然后用下载的包去更新,如果更新不成功提示冲突则表示这个包不是官方的,请慎重!
目前网上的大部分方法都是通过剪辑语音来达到修改语音MD5,不过缺点就是由于AMR语音的标准不同,导致剪辑软件无法读入部分语音或者无法完整地读帧,这样就无法修改语音了。下面我介绍的方法是通过以十六进制编辑语音文件来达到修改语音MD5,优点是绝对可行,缺点是操作略复杂,对于那些不经常捣鼓的人来说有点难。方法的大概原理我会在文章最后说明。 ### :one:准备工作 * 欲替换录音 * 百度贴吧 * 文件管理器(推荐RE) * hex editor - 阅读剩余部分 -
服务器推荐