[TOC]
## 一、知识点
常见四个位运算符:&(按位与),|(按位或),^(按位异或),~(按位取反)
&(按位与):对应位同时为1时,在&运算后则为1,否则为0(简言之:全1为1,否则为0)
|(按位或):对应位有一个为1时,在|运算后则为1,同为0时则为0(简言之:全0为0,有1为1)
^(按位异或):对应位不同时为1时,在^运算后为1,同时为0时则为0,同时为1时^运算后也是0(简言之:不同为1,相同为0)
~(按位取反):$a+(~$a)=-1
在计算机中,负数以其正值的补码形式表达。
在这里我们就要知道三个概念了,原码、反码和补码。
原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。
8的原码为:0000 0000 0000 0000 0000 0000 0000 1000
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。取反操作指:1变0, 0变1。
8按位取反:1111 1111 1111 1111 1111 1111 1111 0111
补码:反码加1称为补码。也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。
正数的补码与其原码相同;负数的补码是在其反码的末位加1
反码加1:1000 0000 0000 0000 0000 0000 000 1001;这样就得负数的正值的补码形式。也就是-9了。
参考:
https://blog.csdn.net/qq_28602957/article/details/52141431
http://www.cnblogs.com/setsail/archive/2013/05/22/3093542.html
http://my.oschina.net/WarRome/blog/90707
## 二、自定义加密函数
文件位置:Index/Common/common.php
```
/**
* 异位或加密字符串
* @param [String] $value [需要加密的字符串]
* @param [integer] $type [加密解密(0:加密,1:解密)]
* @return [String] [加密或解密后的字符串]
*/
function encryption ($value, $type=0) {
$key = md5(C('ENCTYPTION_KEY'));
if (!$type) {
return str_replace('=', '', base64_encode($value ^ $key));
}
$value = base64_decode($value);
return $value ^ $key;
}
```
## 三、配置文件
```
<?php
return array(
//用于异位或加密的KEY
'ENCTYPTION_KEY' => 'www.psnav.com',
//自动登录保存时间
'AUTO_LOGIN_TIME' => time() + 3600 * 24 * 7, //一个星期
);
?>
```
- Layer无刷新不跳转弹框提示信息
- 整合ThinkPHP+实用代码
- TP整合Layer插件实现无刷新
- 自定义助手函数
- 添加信息失败后不跳转
- 三种无限级分类
- TP常用代码
- 自定义公共函数
- TP模型管理专题
- TP模型管理之添加模型
- sfox_newmodel.sql
- TP模型管理之删除模型
- TP模型管理之编辑模型
- TP模型管理之字段添加
- sfox_newmodel.sql_edit
- layer_hplus.js_edit
- TP模型管理之字段删除
- TP模型管理之字段编辑
- TP模型管理之预览模型
- TP模型管理之公共函数
- layer_hplus.js_修订一
- TP模型管理之预览模型静态页
- 后台内容管理系统
- 分类树显示
- 内容列表显示
- 信息发布
- 编辑信息
- layer_hplus.js
- myJs第一版
- myJs第二版
- myJs第三版
- myJs第四版
- TP5插件用法
- Datatables
- WebUploader
- bootstrap-fileinput
- UEditor
- 简单调用
- 路径问题
- 跨域多图上传
- 跨域单图上传
- UEditor图片跨域上传解决方案
- 定制工具栏图标
- ajaxFileUpload
- LayUI
- 图片上传
- layui分页
- 搜索页
- 搜索优化及删除
- Uploadify
- TP5前端应用
- 静态首页
- 前台首页功能实现
- 自定义标签库
- 前台模板继承应用
- 首页自定义标签改进
- 文章内容页
- 自定义标签改进
- 自定义标签修正
- 图片等比例自动缩放
- 后台权限管理
- 角色管理
- 规则管理
- 权限设置
- 会员管理
- 权限管理
- 前台登录注册功能
- 注册登录
- 阿里大于手机注册
- 阿里大于升级阿里云短信服务
- 自动登录完成
- PHP异位或加密实现自动登陆
- 微信开发
- 分享接口
- 静态页面实现微信分享
- 动态页微信分享
- 页面静态化
- 1-全站静态化前期配置
- 2-链接地址静态化
- TP5常用片段代码
- 加载静态资源路径与常量
- thinkphp5预定义常量
- 删除某文件夹的内容
- 解压插件包
- 异步提交插件
- 其他功能
- 背景音乐
- 手机访问PC网站自动跳转到手机网站代码
- 手机微信音乐MP3播放器
- 后盾之网页背景音乐
- 播放器宽度自适应
- 前台首页数据调用
- 视频列表
- 搜索分页
- H5解决苹果(IOS)不能自动播放音乐
- 清空缓存
- 文件处理常识
- 删除路径下的所有文件夹和文件
- 一键清空缓存
- 评论留言
- 格式化时间
- 替换微博内容的URL地址@用户与表情
- PHP正则理解
- jQuery评论插件
- TP空操作
- TP路由
- 跨域访问
- 设置请其头允许跨域请求
- 模板前台判断手机访问跳转手机网址代码
- PHP遍历一个文件夹下所有文件和子文件夹
- PHP获取视频的第一帧与时长
- TP5数据库
- 链式操作原理
- update替换字段部分内容
- 后台开发
- 后台登录页居中显示
- TP5自带验证码
- JS & JQuery专题
- 二级城市联动菜单
- 模板引擎
- 混合模板编译
- 黄永成TP微博开发
- 消息推送
- memcache安装
- 插件开发
- 插件介绍
- 插件钩子
- 浅谈初步理解钩子
- 插件钩子(hooks)分析
- 插件钩子简单理解
- 控制器调用插件
- 钩子通用处理函数
- 插件基类代码
- 插件测试代码
- 浅谈钩子与插件
- 技术综合
- 常用代码
- PHP
- 56个PHP开发常用代码片段(上)
- 56个PHP 开发常用代码片段(中)
- 56个PHP 开发常用代码片段(下)
- sublime text安装自动补全注释的插件
- 影音视频开发
- 视频
- H5视频直播扫盲
- 音乐
- 语音
- PHP实现语音播报功能
- MUI
- 窗体操作