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 split汉字
Jun 05 PHP
在PHP中养成7个面向对象的好习惯
Jul 17 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 PHP
php中使用__autoload()自动加载未定义类的实现代码
Feb 06 PHP
php函数指定默认值方法的小例子
Dec 04 PHP
thinkphp模板输出技巧汇总
Nov 24 PHP
thinkphp中ajax与php响应过程详解
Dec 08 PHP
php生成短域名函数
Mar 23 PHP
php实现中文字符截取防乱码方法汇总
Apr 29 PHP
php实用代码片段整理
Nov 12 PHP
PHP实现获取url地址中顶级域名的方法示例
Jun 05 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
Sep 30 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和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
php 无法载入mysql扩展
2010/03/12 PHP
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
PHP判断文章里是否有图片的简单方法
2014/07/26 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
php车辆违章查询数据示例
2016/10/14 PHP
PHP云打印类完整示例
2016/10/15 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
jQuery实现tab选项卡效果的方法
2015/07/08 Javascript
字符串反转_JavaScript
2016/04/28 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
python操作excel让工作自动化
2019/08/09 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
北京某公司的.net笔试题
2014/03/20 面试题
幼儿园区域活动总结
2014/05/08 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
晋江市委常委班子四风问题整改工作方案
2014/10/26 职场文书
小学生节水倡议书
2015/04/29 职场文书
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android