基于PHP實現解密或加密Cloudflar郵箱保護
Cloudflare 有一項功能挺不錯的,就是將頁面上所有的郵箱地址都加密起來,防止機器人抓到然后干壞事。
這項功能要在后臺開啟 email address obfuscation
之后就可以在頁面上加入一個郵箱地址,比如說 [email protected]
查看源代碼就能發現類似如下的代碼
<a data-cfemail='30515253705152531e535f5d' href='http://m.lshqa.cn/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').'n';
得到的結果就是上面所說的 [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;}
我們就能利用這個加密算法,將手機號、郵箱地址、身份證等各種敏感的信息都加密起來,防止別人能輕易的抓取到數據
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
1. Django中的AutoField字段使用2. Django ORM實現按天獲取數據去重求和例子3. 解決docker與vmware的沖突問題4. IntelliJ Idea 2020.1 正式發布,官方支持中文(必看)5. IntelliJ IDEA設置自動提示功能快捷鍵的方法6. asp.net core應用docke部署到centos7的全過程7. Java 3D的動畫展示(Part1-使用JMF)8. Python基于jieba, wordcloud庫生成中文詞云9. 如何在vue3.0+中使用tinymce及實現多圖上傳文件上傳公式編輯功能10. 刪除docker里建立容器的操作方法
