PHP实现的ID混淆算法类与用法示例


Posted in PHP onAugust 10, 2018

本文实例讲述了PHP实现的ID混淆算法类与用法。分享给大家供大家参考,具体如下:

<?php
/**
 * ID混淆算法
 */
class IdCrypt
{
  /**
   * 对整数id进行可逆混淆
   */
  public static function encodeId($id)
  {
    $sid = ($id & 0xff000000);
    $sid += ($id & 0x0000ff00) << 8;
    $sid += ($id & 0x00ff0000) >> 8;
    $sid += ($id & 0x0000000f) << 4;
    $sid += ($id & 0x000000f0) >> 4;
    $sid ^= 11184810;
    return $sid;
  }
  /**
   * 对通过encodeId混淆的id进行还原
   */
  public static function decodeId($sid)
  {
    if (!is_numeric($sid)) {
      return false;
    }
    $sid ^= 11184810;
    $id = ($sid & 0xff000000);
    $id += ($sid & 0x00ff0000) >> 8;
    $id += ($sid & 0x0000ff00) << 8;
    $id += ($sid & 0x000000f0) >> 4;
    $id += ($sid & 0x0000000f) << 4;
    return $id;
  }
}
$idstr = new IdCrypt();
echo $encodeid = $idstr->encodeId('12345678');
echo "<br/>";
echo $decodeid = $idstr->decodeId($encodeid);
?>

运行结果:

13309518
12345678

PHP 相关文章推荐
php中支持多种编码的中文字符串截取函数!
Mar 20 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 PHP
PHP flock 文件锁详细介绍
Dec 29 PHP
完美的2个php检测字符串是否是utf-8编码函数分享
Jul 28 PHP
PHP实现HTML生成PDF文件的方法
Nov 07 PHP
Yii2创建多界面主题(Theme)的方法
Oct 08 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
Oct 13 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
Jun 20 PHP
java解析json方法总结
May 16 PHP
thinkphp5修改view到根目录实例方法
Jul 02 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 16 PHP
php中yar框架实例用法讲解
Dec 27 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 #PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
Aug 10 #PHP
PHP实现的服务器一致性hash分布算法示例
Aug 09 #PHP
PHP检查端口是否可以被绑定的方法示例
Aug 09 #PHP
php对象工厂类完整示例
Aug 09 #PHP
php闭包中使用use声明变量的作用域实例分析
Aug 09 #PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 #PHP
You might like
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
php文件操作实例代码
2012/05/10 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
php数组中包含中文的排序方法
2014/06/03 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
与Math.pow 相反的函数使用介绍
2014/08/04 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
django 常用orm操作详解
2017/09/13 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python如何支持并发方法详解
2020/07/25 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
css3圆角样式分享自定义按钮样式
2013/12/27 HTML / CSS
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
抽象方法、抽象类怎样声明
2014/10/25 面试题
给排水工程师岗位职责
2013/11/21 职场文书
九年级数学教学反思
2014/02/02 职场文书
工程催款通知书
2015/04/17 职场文书
考试后的感想
2015/08/07 职场文书
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫