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 相关文章推荐
一个用mysql_odbc和php写的serach数据库程序
Oct 09 PHP
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
JS 网站性能优化笔记
May 24 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
Oct 03 PHP
php对二维数组按指定键值key排序示例代码
Nov 26 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
Mar 12 PHP
php中JSON的使用与转换
Jan 14 PHP
php中PDO方式实现数据库的增删改查
May 17 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
Feb 04 PHP
PHP后台备份MySQL数据库的源码实例
Mar 18 PHP
laravel高级的Join语法详解以及使用Join多个条件
Oct 16 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 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 split()函数的用法详解
2013/06/05 PHP
php数组删除元素示例
2014/03/21 PHP
php smarty模板引擎的6个小技巧
2014/04/24 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
jquery 上下滚动广告
2009/06/17 Javascript
json 入门基础教程 推荐
2009/10/31 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
vue2.0 computed 计算list循环后累加值的实例
2018/03/07 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
详解Webpack loader 之 file-loader
2018/11/07 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
Python中存取文件的4种不同操作
2018/07/02 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
省级优秀毕业生主要事迹
2014/05/29 职场文书
学校四群教育实施方案
2014/06/12 职场文书
运动会横幅标语
2014/06/17 职场文书
庆七一活动总结
2014/08/27 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
2015年试用期工作总结
2014/12/12 职场文书
五年级上册复习计划
2015/01/19 职场文书
Win11 S Mode版本泄露 正式上线后叫做Windows 11 SE
2021/11/21 数码科技
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android
MySQL分区路径子分区再分区
2022/04/13 MySQL
Docker下安装Oracle19c
2022/04/13 Servers
MongoDB数据库之添删改查
2022/04/26 MongoDB
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js