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中的正规表达式(一)
Oct 09 PHP
获得Google PR值的PHP代码
Jan 28 PHP
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 PHP
php 数学运算验证码实现代码
Oct 11 PHP
基于PHP创建Cookie数组的详解
Jul 03 PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 PHP
php实例分享之html转为rtf格式
Jun 02 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
Nov 18 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
Oct 27 PHP
PHP实现bitmap位图排序与求交集的方法
Jul 28 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
Aug 11 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
Sep 02 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 MYSQL 数据备份类
2009/06/19 PHP
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
js常用代码段收集
2011/10/28 Javascript
jquery获取tagName再进行判断
2014/05/29 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
vue router+vuex实现首页登录验证判断逻辑
2018/05/17 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
网站开发实习生的自我评价
2013/12/11 职场文书
高分子材料与工程专业个人求职信
2013/12/15 职场文书
中专生求职自荐信范文
2013/12/22 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
欢迎新生标语2015
2015/07/16 职场文书
学习经验交流会演讲稿
2015/11/02 职场文书
JavaScript函数柯里化
2021/11/07 Javascript
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis