cloudflare email 邮箱混淆/加密/解密 PHP 源码版

在某个网站上看到一串 email 的混淆字符串,通常,这些地址会被标记为'[email protected]'或类似的占位符。搜了一下,竟然是 cloudflare 家的。

混淆

php 复制代码
private 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;
}

还原

php 复制代码
private function decodeEmail($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;
}
相关推荐
韩曙亮几秒前
【Web APIs】浏览器本地存储 ② ( window.sessionStorage 本地存储常用 API 简介 | 代码示例 )
开发语言·前端·javascript·localstorage·sessionstorage·web apis·浏览器本地存储
郑州光合科技余经理几秒前
私有化B2B订货系统实战:核心模块设计与代码实现
java·大数据·开发语言·后端·架构·前端框架·php
chillxiaohan3 分钟前
GO学习踩坑记录
开发语言·学习·golang
2301_7644413311 分钟前
python实现罗斯勒吸引子(Rössler Attractor)
开发语言·数据结构·python·算法·信息可视化
探序基因12 分钟前
R语言-使用pheatmap函数画热图
开发语言·r语言
-凌凌漆-14 分钟前
【JS】var与let的区别
开发语言·前端·javascript
ExiFengs17 分钟前
Java使用策略模式实现多实体通用操作的优雅设计
java·开发语言·设计模式·策略模式
茶本无香17 分钟前
设计模式之三—工厂模式:灵活对象创建的艺术
java·开发语言·设计模式·工厂模式
超级无敌大学霸20 分钟前
c语言整型提升
c语言·开发语言
困惑阿三24 分钟前
利用 Flexbox 实现无需媒体查询(Media Queries)的自动响应式网格。
开发语言·前端·javascript