千里码-刷刷刷

来源:互联网 发布:visual studio python 编辑:程序博客网 时间:2024/04/30 09:01
千里码网站题目难度曲线比较陡,但是肯花时间去研究,提升还是相当快的。今天的题目是刷票。

题目如下:
任何一个ugc性质的网站都需要做好一个基本功:识别哪些是真实用户沉淀的内容,哪些是程序模拟真实用户产生的恶意行为。 一般各个公司都会有一个专门的小分队:anti-spam team。 @若远同学就是专业防刷30年…

这里有一个每日最帅coder评选排行榜…

用户可以上传他认为最帅的coder的名字及其头像,并为他点赞…

每晚24点,被点赞最多的coder,通过此题…

那么今天,最帅的是你么?

一般点赞这种行为会设计一个验证码…来区别您是普通人还是机器…

我们网站是coder专享的…验证码当然会难一点啦~ 这里的验证码是一个自然数x…他能使 md5(当天日期+你的用户名+当前的票数+x)的前6位都是0…

举例: 假如2015年12月4号食年已经拿到了1014票,当你想投第1015票的时候,你的验证码可以是12011618,因为 “20151204shinian101412011618”的md5值是”0000003A19CF73CF3E9799219A9FFF4F”,这个md5前6位都是0…

题目下面给了一个PHP版的MD5计算,再通过curl(关于curl 可以参考http://blog.csdn.net/yjier/article/details/5666583)来实现。

<?phpheader('Content-type: text/html; charset=utf-8'); $date="20151015";//当前日期$name="端着木鱼敲代码";//你支持的帅coder的用户名(大多数情况就是你自己)$vote=1;//当前的票数,别忘了先添加候选人- -。set_time_limit(0);for($i=0;$i<5000;$i++){    $str=$date.$name.$vote;//php中的.代表字符串拼接    $vote++;    for($checkcode=0;;$checkcode++)    {        $ans=md5($str.$checkcode);        if(strpos($ans,"000000")===0)        {               //echo($checkcode."\n");            //1.初始化,创建一个新cURL资源            $ch = curl_init();            $url="http://www.qlcoder.com/train/handsomerank?_token=mv9Ib8GR4UdYsa5mN8HpINUx6bbyKejVB1GWsYoK&user=".$name."&checkcode=".$checkcode;            //设置URL和相应的选项            curl_setopt($ch, CURLOPT_URL,$url);            curl_setopt($ch, CURLOPT_HEADER, 1);            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);            //抓取URL并把它传递给浏览器            curl_exec($ch);            //关闭cURL资源,并且释放系统资源            curl_close($ch);            echo $url."</br>";            break;        }       }    echo $vote."</br>";}?>
0 0
原创粉丝点击