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 文件扩展名 获取函数
Jun 03 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
PHP 面向对象实现代码
Nov 11 PHP
Base64在线编码解码实现代码 演示与下载
Jan 08 PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 PHP
解析CI的AJAX分页 另类实现方法
Jun 27 PHP
ThinkPHP3.1的Widget新用法
Jun 19 PHP
php foreach正序倒序输出示例代码
Jul 01 PHP
php cookie名使用点号(句号)会被转换
Oct 23 PHP
php微信高级接口群发 多客服
Jun 23 PHP
浅析php如何实现App常用的秒发功能
Aug 03 PHP
PHPUnit + Laravel单元测试常用技能
Nov 06 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
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
JS 时间显示效果代码
2009/08/23 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
JQuery判断radio是否选中并获取选中值的示例代码
2014/10/17 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
2016/10/27 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
jQuery中ajax获取数据赋值给页面的实例
2017/12/31 jQuery
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
Django 数据库同步操作技巧详解
2019/07/19 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
Pytorch: 自定义网络层实例
2020/01/07 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
Python如何定义有可选参数的元类
2020/07/31 Python
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
高中生毕业学习总结的自我评价
2013/11/14 职场文书
销售找工作求职信
2013/12/20 职场文书
化工专业大学生职业生涯规划书
2014/01/14 职场文书
投标承诺书范本
2014/03/27 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
党员自我对照检查材料
2014/08/19 职场文书
团队拓展活动方案
2014/08/28 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
Java实现带图形界面的聊天程序
2022/06/10 Java/Android