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 相关文章推荐
利用文件属性结合Session实现在线人数统计
Oct 09 PHP
MySQL 日期时间函数常用总结
Jun 12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
PHP中的reflection反射机制测试例子
Aug 05 PHP
使用YUI+Ant 实现JS CSS压缩
Sep 02 PHP
php使用递归计算文件夹大小
Dec 24 PHP
ThinkPHP表单数据智能写入create方法实例分析
Sep 27 PHP
Zend Framework教程之模型Model用法简单实例
Mar 04 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
May 23 PHP
php-fpm服务启动脚本的方法
Apr 27 PHP
浅谈如何提高PHP代码的质量
May 28 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
真正的ZIP文件操作类(php)
2007/07/21 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
php实现webservice实例
2014/11/06 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
js数组的基本使用总结
2021/01/18 Javascript
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
Python 转义字符详细介绍
2017/03/21 Python
SVM基本概念及Python实现代码
2017/12/27 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
Python OpenCV处理图像之图像直方图和反向投影
2018/07/10 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
手写一个python迭代器过程详解
2019/08/27 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
Android面试宝典
2013/08/06 面试题
关于抽烟的检讨书
2014/02/25 职场文书
捐赠仪式主持词
2014/03/19 职场文书
2014年五四青年节活动策划书
2014/04/22 职场文书
大学生社会实践评语
2014/04/25 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书
php修改word的实例方法
2021/11/17 PHP
将MySQL的表数据全量导入clichhouse库中
2022/03/21 MySQL