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 相关文章推荐
基于qmail的完整WEBMAIL解决方案安装详解
Oct 09 PHP
php at(@)符号的用法简介
Jul 11 PHP
php生成随机密码的几种方法
Jan 17 PHP
PHP递归算法的详细示例分析
Feb 19 PHP
PHP开发制作一个简单的活动日程表Calendar
Jun 20 PHP
PHP中explode函数和split函数的区别小结
Aug 24 PHP
php 生成签名及验证签名详解
Oct 26 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
Nov 23 PHP
Thinkphp实现站点静态化的方法详解
Mar 21 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
Apr 11 PHP
windows 2008r2+php5.6.28环境搭建详细过程
Jun 18 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 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获取网页里所有图片并存入数组的方法
2015/04/06 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
javascript replace方法与正则表达式
2008/02/19 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
js仿百度贴吧验证码特效实例代码
2014/01/16 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
前端常见跨域解决方案(全)
2017/09/19 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
Python 多线程Threading初学教程
2017/08/22 Python
使用tensorflow实现线性svm
2018/09/07 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
Python检查ping终端的方法
2019/01/26 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
Lookfantastic日本官网:英国知名护肤、化妆品和头发护理购物网站
2018/04/21 全球购物
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
喜之郎果冻广告词
2014/03/20 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
质量整改报告范文
2014/11/08 职场文书
小学优秀教师材料
2014/12/15 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
pandas进行数据输入和输出的方法详解
2022/03/23 Python
Github 使用python对copilot做些简单使用测试
2022/04/14 Python