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 相关文章推荐
不用GD库生成当前时间的PNG格式图象的程序
Oct 09 PHP
桌面中心(二)数据库写入
Oct 09 PHP
php的$_FILES的临时储存文件与回收机制实测过程
Jul 12 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
PHP函数strip_tags的一个bug浅析
May 22 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 PHP
浅谈php://filter的妙用
Mar 05 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
Mar 11 PHP
基于PHP实现微信小程序客服消息功能
Aug 12 PHP
imagettftext() 失效,不起作用
Mar 09 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
Syphon 使用方法
2021/03/03 冲泡冲煮
php 获取全局变量的代码
2011/04/21 PHP
php使用smtp发送支持附件的邮件示例
2014/04/13 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
深入理解JavaScript定时机制
2010/10/29 Javascript
Grid得到选择行数据的方法总结
2011/01/17 Javascript
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
获取layer.open弹出层的返回值方法
2018/08/20 Javascript
JS实现倒计时图文效果
2018/11/17 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
Python中的字符串类型基本知识学习教程
2016/02/04 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
Python 私有化操作实例分析
2019/11/21 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
四年的个人工作自我评价
2013/12/10 职场文书
文明学生事迹材料
2014/01/29 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
逃课检讨书
2015/01/26 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
python实战之90行代码写个猜数字游戏
2021/04/22 Python
box-shadow单边阴影的实现
2023/05/21 HTML / CSS