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简单命令代码集锦
Sep 24 PHP
php快速url重写 更新版[需php 5.30以上]
Apr 20 PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
Jul 03 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
php+mysql数据库实现无限分类的方法
Dec 12 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 PHP
PHP实现的DES加密解密类定义与用法示例
Nov 02 PHP
PHP Laravel中的Trait使用方法
Jan 20 PHP
实例讲解PHP中使用命名空间
Jan 27 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
深入了解php4(1)--回到未来
2006/10/09 PHP
PHP的FTP学习(三)
2006/10/09 PHP
请php正则走开
2008/03/15 PHP
Zend Guard一些常见问题解答
2008/09/11 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
Vue.directive使用注意(小结)
2018/08/31 Javascript
node.js连接mysql与基本用法示例
2019/01/05 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
vue data引入本地图片的两种方式小结
2019/11/13 Javascript
原生js实现随机点名
2020/07/05 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
Python实现导出数据生成excel报表的方法示例
2017/07/12 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
Python 如何创建一个线程池
2020/07/28 Python
phpquery中文手册
2021/03/18 PHP
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
实习生单位鉴定意见
2013/12/04 职场文书
八年级语文教学反思
2014/02/11 职场文书
一岗双责责任书
2014/04/15 职场文书
优秀大学生求职自荐信范文
2014/04/19 职场文书
初中生操行评语大全
2014/04/24 职场文书
幼儿教师求职信
2014/05/24 职场文书
年检委托书
2014/08/30 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
党员读书活动心得体会
2016/01/14 职场文书
MySQL数据库实验实现简单数据库应用系统设计
2022/06/21 MySQL