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 全文搜索和替换的实现代码
Jul 29 PHP
处理php自动反斜杠的函数代码
Jan 05 PHP
PHP目录函数实现创建、读取目录教程实例
Jan 13 PHP
利用curl 多线程 模拟 并发的详解
Jun 14 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
Mar 21 PHP
PHPCMS2008广告模板SQL注入漏洞修复
Oct 11 PHP
PHP学习笔记之session
May 06 PHP
laravel请求参数校验方法
Oct 10 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 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+MYSQL开发工具及资源收藏
2007/01/02 PHP
php flush类输出缓冲剖析
2008/10/19 PHP
codeigniter框架批量插入数据
2014/01/09 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
js实现楼层导航功能
2017/02/23 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
深入剖析Express cookie-parser中间件实现示例
2018/02/01 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
python 剪切移动文件的实现代码
2018/08/02 Python
Python如何合并多个字典或映射
2020/07/24 Python
python中的对数log函数表示及用法
2020/12/09 Python
Python 的 f-string 可以连接字符串与数字的原因解析
2021/02/20 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
大学毕业后的十年规划
2014/01/07 职场文书
常务副总经理任命书
2014/06/05 职场文书
老公出轨后的保证书
2015/05/08 职场文书
党支部审查意见
2015/06/02 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
《风筝》教学反思
2016/02/23 职场文书
导游词之江南周庄
2019/12/06 职场文书