<?php/** 说明:此类函数是基于优优云图片识别平台的API接口,调用类中的函数可以进行图片识别 类中的公有函数: setSoftInfo($softID,$softKey); //设置软件ID和KEY userLogin($userName,$passWord); //用户登录,登录成功返回用户的ID getPoint($userName,$passWord); //获取用户剩余题分 upload($imagePath,$codeType); //根据图片路径上传,返回验证码在服务器的ID,$codeType取值查看:http://www.uuwise.com/price.html getResult($codeID); //根据验证码ID获取识别结果 autoRecognition($imagePath,$codeType); //将upload和getResult放到一个函数来执行,返回验证码识别结果 reportError($codeID); //识别结果不正确报错误 regUser($userName,$userPassword) //注册新用户,注册成功返回新用户的ID pay($userName,$Card); //充值题分,充值成功返回用户当前题分 类中的公有变量: $macAddress='00e021ac7d'; //客户机的mac地址,服务器暂时没有用,后期准备用于绑定mac地址 赋值方法: $obj->macAddress='00e021ac7d'; $timeOut='60000'; //超时时间,建议不要改动此值 赋值方法: $obj->timeOut=60000; 函数调用方法: 需要先new一个对象 $obj=new uuApi; $obj->setSoftInfo('2097','b7ee76f547e34516bc30f6eb6c67c7db'); //如何获取这两个值?请查看这个页面:http://dll.uuwise.com/index.php?n=ApiDoc.GetSoftIDandKEY $obj->userLogin('userName','userPassword'); $result=autoRecognition($imagePath,$codeType); */class uuApi{ private $softID; private $softKEY; private $userName; private $userPassword; private $uid; private $userKey; private $softContentKEY; private $uuUrl; private $uhash; private $uuVersion='1.1.0.1'; private $userAgent; private $gkey; public $macAddress='00e021ac7d'; //客户机的mac地址,服务器暂时没有用,后期准备用于绑定mac地址 赋值方法: $obj->macAddress='00e021ac7d'; public $timeOut=60000; //超时时间,建议不要改动此值 赋值方法: $obj->timeOut=60000; public function setSoftInfo($id,$key) { if($id&&$key){ $this->softID=$id; $this->softKEY=$key; $this->uhash=md5($id.strtoupper($key)); return 'YES'; } return 'NO'; } private function getServerUrl($Server) { $url = "http://common.taskok.com:9000/Service/ServerConfig.aspx"; $result=$this->uuGetUrl($url,array(),$postData=false); preg_match_all("/\,(.*?)\:101\,(.*?)\:102\,(.*?)\:103/", $result, $match_index); $arr=array_filter($match_index); if(empty($arr)){return '-1001';} switch($Server) { case 'service': return 'http://'.$match_index[1][0]; break; case 'upload': return 'http://'.$match_index[2][0]; break; case 'code': return 'http://'.$match_index[3][0]; break; default: return 'parameter error'; } curl_close($this->uuUrl); } public function userLogin($userName,$passWord) { if(!($this->softID&&$this->softKEY)) { return 'sorry,SoftID or softKey is not set! Please use the setSoftInfo(id,key) function to set!'; } if(!($userName&&$passWord)){ return 'userName or passWord is empty!';} $this->userName=$userName; $this->userPassword=$passWord; $this->userAgent=md5(strtoupper($this->softKEY).strtoupper($this->userName)).$this->macAddress; $url = $this->getServerUrl('service').'/Upload/Login.aspx?U='.$this->userName.'&P='.md5($this->userPassword).'&R='.mktime(); $result=$this->uuGetUrl($url); if($result>0) { $this->userKey=$result; $this->uid=explode("_",$this->userKey); $this->uid=$this->uid[0]; $this->softContentKEY=md5(strtolower($this->userKey.$this->softID.$this->softKEY)); $this->gkey=md5(strtoupper($this->softKEY.$this->userName)).$this->macAddress; return $this->uid; } return $result; } public function getPoint($userName,$passWord) { if(!($userName&&$passWord)){ return 'userName or passWord is empty!';} $url = $this->getServerUrl('service').'/Upload/GetScore.aspx?U='.$userName.'&P='.md5($passWord).'&R='.mktime(); $result=$this->uuGetUrl($url); return $result; } public function upload($imagePath,$codeType,$auth=false) { if(!file_exists($imagePath)){return '-1003';} if(!is_numeric($codeType)){return '-3004';} $data=array( 'img'=>'@'.$imagePath, 'key'=>$this->userKey, 'sid'=>$this->softID, 'skey'=>$this->softContentKEY, 'TimeOut'=>$this->timeOut, 'Type'=>$codeType ); $ver=array( 'Version'=>'100', ); if($auth){$data=$data+$ver;} $url = $this->getServerUrl('upload').'/Upload/Processing.aspx?R='.mktime(); return $this->uuGetUrl($url,$data); } public function getResult($codeID) { if(!is_numeric($codeID)){return '-1009|The codeID is not number';} $url = $this->getServerUrl('code').'/Upload/GetResult.aspx?KEY='.$this->userKey.'&ID='.$codeID.'&Random='.mktime(); $result='-3'; $timer=0; while($result=='-3'&&($timer<$this->timeOut)) { $result=$this->uuGetUrl($url,false,false); usleep(100000); } curl_close($this->uuUrl); if($result=='-3') { return '-1002'; } return $result; } public function autoRecognition($imagePath,$codeType) { $result=$this->upload($imagePath,$codeType,$auth=true); if($result>0){ $arrayResult=explode("|",$result); if(!empty($arrayResult[1])){return $arrayResult[1];} return $this->getResult($result); } return $result; } private function uuGetUrl($url,$postData=false,$closeUrl=true) { $uid=isset($this->uid)?($this->uid):'100'; $default=array( 'Accept: text/html, application/xhtml+xml, */*', 'Accept-Language: zh-CN', 'Connection: Keep-Alive', 'Cache-Control: no-cache', 'SID:'.$this->softID, 'HASH:'.$this->uhash, 'UUVersion:'.$this->uuVersion, 'UID:'.$uid, 'User-Agent:'.$this->userAgent, 'KEY:'.$this->gkey, ); $this->uuUrl = curl_init(); curl_setopt($this->uuUrl, CURLOPT_HTTPHEADER, ($default)); curl_setopt($this->uuUrl, CURLOPT_HEADER, false); curl_setopt($this->uuUrl, CURLOPT_RETURNTRANSFER, true); curl_setopt($this->uuUrl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($this->uuUrl, CURLOPT_VERBOSE, false); curl_setopt($this->uuUrl, CURLOPT_TIMEOUT, $this->timeOut); curl_setopt($this->uuUrl, CURLOPT_AUTOREFERER, true); curl_setopt($this->uuUrl, CURLOPT_RETURNTRANSFER, true); curl_setopt($this->uuUrl, CURLOPT_HTTPGET, true); curl_setopt($this->uuUrl, CURLOPT_URL,$url); if($postData) { curl_setopt($this->uuUrl, CURLOPT_POST, true); curl_setopt($this->uuUrl, CURLOPT_POSTFIELDS, $postData); } $info=curl_exec($this->uuUrl); if($closeUrl){ curl_close($this->uuUrl); } return trim($info); } public function reportError($codeID) { if(!is_numeric($codeID)){return '-1009|The codeID is not number';} if($this->softContentKEY&&$this->userKey) { $url = $this->getServerUrl('code').'/Upload/ReportError.aspx?key='.$this->userKey.'&ID='.$codeID.'&sid='.$this->softID.'&skey='.$this->softContentKEY.'&R='.mktime(); $result=$this->uuGetUrl($url); if($result=='OK') { return 'OK'; } return $result; } return '-1'; } public function regUser($userName,$userPassword) { if($this->softID&&$this->softKEY) { if($userName&&$userPassword) { $data=array( 'U'=>$userName, 'P'=>$userPassword, 'sid'=>$this->softID, 'UKEY'=>md5(strtoupper($userName).$userPassword.$this->softID.strtolower($this->softKEY)), ); $url=$this->getServerUrl('service').'/Service/Reg.aspx'; return $this->uuGetUrl($url,$data); } return 'userName or userPassword is empty!'; } return '-1'; } public function pay($userName,$Card) { if($this->softID&&$this->softKEY) { if($userName&&$Card) { $data=array( 'U'=>$userName, 'card'=>$Card, 'sid'=>$this->softID, 'pkey'=>md5(strtoupper($userName).$this->softID.$this->softKEY.strtoupper($Card)), ); $url=$this->getServerUrl('service').'/Service/Pay.aspx'; return $this->uuGetUrl($url,$data); } return 'userName or Card is empty!'; } return '-1'; }}?>
终于研究出来他们的API了,
现在识别基本是万能的,测试图片
回复讨论(解决方案)
广告贴?百度了一下这个公司,很明显是人工识别。
保留怀疑意见~~
请识别验证码图片:s+b=?
60秒时间,是不是太长了,而且这个在哪里可以用到呢?这个耗的资源更多
有一种职业,叫网络打字员
还是很有用处的
60秒时间,是不是太长了,而且这个在哪里可以用到呢?这个耗的资源更多
抢火车票,抢小米,各种啊

phpidifiesauser의 sssessionusessessioncookiesandssessionids.1) whensession_start () iscalled, phpgeneratesauniquessessionStoredInacookienamedPhpsSessIdonSeuser 'sbrowser.2) thisidallowsphptoretrievessessionDataTromServer.

PHP 세션의 보안은 다음 측정을 통해 달성 할 수 있습니다. 1. Session_REGENEREAT_ID ()를 사용하여 사용자가 로그인하거나 중요한 작업 일 때 세션 ID를 재생합니다. 2. HTTPS 프로토콜을 통해 전송 세션 ID를 암호화합니다. 3. 세션 _save_path ()를 사용하여 세션 데이터를 저장하고 권한을 올바르게 설정할 보안 디렉토리를 지정하십시오.

phpsessionfilesarestoredInTheRectorySpecifiedBysession.save_path, 일반적으로/tmponunix-likesystemsorc : \ windows \ temponwindows.tocustomizethis : 1) austession_save_path () toSetacustomDirectory, verlyTeCustory-swritation;

toretrievedatafromAphPsession, startSessionstart_start () andaccessvariblesinthe $ _sessionArray.forexample : 1) startthessession : session_start (). 2) retrievedata : $ _ session [ 'username']; echo "Welcome,". $ username;

세션을 사용하여 효율적인 쇼핑 카트 시스템을 구축하는 단계에는 다음이 포함됩니다. 1) 세션의 정의와 기능을 이해합니다. 세션은 요청에 따라 사용자 상태를 유지하는 데 사용되는 서버 측 스토리지 메커니즘입니다. 2) 쇼핑 카트에 제품 추가와 같은 기본 세션 관리를 구현합니다. 3) 제품 수량 관리 및 삭제 지원 고급 사용으로 확장; 4) 세션 데이터를 지속하고 보안 세션 식별자를 사용하여 성능 및 보안을 최적화합니다.

이 기사는 PHP의 인터페이스를 생성, 구현 및 사용하는 방법을 설명하여 코드 구성 및 유지 관리에 대한 이점에 중점을 둡니다.

이 기사에서는 PHP의 암호 해싱에 대한 Crypt ()와 Password_hash ()의 차이점에 대해 논의하여 최신 웹 애플리케이션에 대한 구현, 보안 및 적합성에 중점을 둡니다.

기사는 입력 유효성 검사, 출력 인코딩 및 OWASP ESAPI 및 HTML 청정기와 같은 도구를 통해 PHP의 크로스 사이트 스크립팅 (XSS) 방지에 대해 논의합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
