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 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
PHP4实际应用经验篇(4)
Oct 09 PHP
ADODB结合SMARTY使用~超级强
Nov 25 PHP
扩展你的 PHP 之入门篇
Dec 04 PHP
php常用Output和ptions/Info函数集介绍
Jun 19 PHP
ThinkPHP单字母函数(快捷方法)使用总结
Jul 23 PHP
php基于mcrypt的加密解密实例
Oct 27 PHP
php求一个网段开始与结束IP地址的方法
Jul 09 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
php-fpm服务启动脚本的方法
Apr 27 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 PHP
tp5.1 框架数据库高级查询技巧实例总结
May 25 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 str_pad 函数用法简介
2009/07/11 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
php数组和链表的区别总结
2019/09/20 PHP
jQuery select的操作实现代码
2009/05/06 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
JS实现的样式切换功能tableCSS实例
2016/12/30 Javascript
js的三种继承方式详解
2017/01/21 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Python实现简单状态框架的方法
2015/03/19 Python
Python中基本的日期时间处理的学习教程
2015/10/16 Python
Python解析最简单的验证码
2016/01/07 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
PyQt5笔记之弹出窗口大全
2019/06/20 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
法国时尚童装网站:Melijoe
2016/08/10 全球购物
施工人员岗位职责
2013/12/12 职场文书
大学毕业后的十年规划
2014/01/07 职场文书
人事主管岗位职责
2014/01/30 职场文书
重阳节登山活动方案
2014/02/03 职场文书
普通党员整改措施
2014/10/24 职场文书
关于长城的导游词
2015/01/30 职场文书
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫