PHP 기반 복호화 또는 암호 화 Cloudflar 메 일 보호

클 라 우 드 플 라 어 는 페이지 에 있 는 모든 메 일 주 소 를 암호 화하 여 로봇 이 잡 고 나 쁜 짓 을 하지 않도록 하 는 기능 이 있다.
이 기능 은 배경 에서 email address obfuscation 을 켜 야 합 니 다.
그 후에 페이지 에 메 일 주 소 를 추가 할 수 있 습 니 다.예 를 들 어[email protected]
소스 코드 를 보면 다음 과 같은 코드 를 발견 할 수 있 습 니 다.

<a class="__cf_email__" data-cfemail="30515253705152531e535f5d" href="/cdn-cgi/l/email-protection" rel="external nofollow" >
[email protected]
</a>
<script data-cfhash="f9e31" type="text/javascript">
 /* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */
</script>
우 리 는 PHP 방식 으로 이 메 일 주 소 를 복호화 할 수 있다.

function deCFEmail($encode){
	$k = hexdec(substr($encode,0,2));
	for($i=2, $m=''; $i < strlen($encode) - 1; $i += 2){
		$m.=chr(hexdec(substr($encode, $i, 2))^$k);
	}
	return $m;
}
echo deCFEmail("30515253705152531e535f5d")."
";
얻 은 결 과 는 바로 위 에서 말 한 것 이다[email protected]
그러나 저 희 는 Cloudflare 와 관련 된 서 비 스 를 사용 하고 싶 지 않 습 니 다.단순히 그의 암호 화 기술 을 사용 하고 싶 기 때문에 암호 화 된 알고리즘 도 찾 아야 합 니 다.
우 리 는 위 에서 복호화 한 코드 를 이용 하여 역방향 으로 실행 하면 암호 화 된 알고리즘 을 얻 을 수 있다.

function encodeEmail($email, $key=0) {
	$chars = str_split($email);
	$string = '';
	$key = $key ? $key : rand(10, 99);
	foreach ($chars as $value) {
		$string .= sprintf("%02s", dechex(ord($value)^$key));
	}
	return dechex($key).$string;
}
우 리 는 이 암호 화 알고리즘 을 이용 하여 핸드폰 번호,메 일 주소,신분증 등 각종 민감 한 정 보 를 암호 화하 여 다른 사람 이 쉽게 데 이 터 를 잡 을 수 있 도록 할 수 있다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기