身份验证器
Google Authenticator 或 阿里云 MFA
Google Authenticator 是一个一次性密码生成器,内置了 OTP(One-time Password) 算法,且和服务器共享了一个相同的密钥。从某个时间点开始计算 30 秒时间间隔的计数,计数从 0 开始,每过 30 秒计数加 1。在每个 30 秒内计数是一样的,把计数和密钥输入到算法中可以得到一个六位的一次性密码,有效期为 30 秒。服务器有密钥,也可以计算从某个时间点到现在的 30秒时间间隔计数,所以可以验证客户端提交的一次下密码是否一致。
OTP/HOTP/TOTP
OTP (One-time Password)OTP 是一次性密码,又称动态密码或单次有效密码,是指计算机系统或其他数字设备上只能使用一次的密码,有效期为只有一次登录会话或交易。
HOTP (HMAC-based One-time Password)HOTP 是一种基于散列消息验证码(HMAC)的一次性密码算法。
TOTP (Time-based One-Time Password)TOTP 是一种根据预共享的密钥与当前时间计算一次性密码 ...
Laravel无限分级插件
什么是分层数据(Hierarchical Data)?
分层数据是数据项在整个树结构以父子关系相互关联时形成的数据结构。
分层数据的应用场景:组织架构,省份城市,用户推广关系。
在分层数据中,每个 “子” 节点只有一个 “父节点”,但每个父节点可以有多个子节点。位于层次结构顶部的第一个节点称为根节点。当需要检索信息时,将从根节点向下扫描整棵树。由于每次用户进行查询时都需要扫描整棵树,因此系统不灵活、速度慢。现代数据库已经发展到在相同数据上使用多个层次结构,以便更快、更轻松地进行搜索。
嵌套集合(Nested Set)模型什么是嵌套集?
嵌套集(Nested Set)模型的算法也叫做预排序遍历树算法 MPTT(Modified Preorder Tree Taversal)。
嵌套集模型是根据树遍历对节点进行编号,遍历每个节点两次,按访问顺序分配编号,两次访问时都分配编号。这为每个节点留下了两个数字,它们存储为两个属性。查询变得便宜:可以通过比较这些数字来测试层次结构成员资格。更新需要重新编号,因此成本很高。
通俗一点解释就是每个集体都是有边界的,我邀请的子用户和我就形成了一个小的团 ...
BINANE SMART CHAIN
准备工作
1台16核64G内存的linux服务器,3.5T以上硬盘
MBR 分区为 GPT
下载历史快照
Database after Ancient Data Prune
修剪过历史数据的,不能查询历史交易
Pruned database
保留历史交易查询的数据块
这里我们下载 Pruned database 可查询历史交易的快照
https://github.com/bnb-chain/bsc-snapshots
https://docs.binance.org/smart-chain/developer/fullnode.html#steps-to-run-a-fullnode
安装多线程下载软件
1sudo apt-get install aria2
下载最近的历史快照123screen -S downloadaria2c -o geth.tar.lz4 -x 16 -s 20 "https://tf-dex-prod-public-snapshot-site1.s3-accelerate.amazonaws.com/geth-20220503.tar.lz4?A ...
aws cli s3 存储桶的使用
AWS CLI
AWS 命令行界面 (CLI) 是用于管理 AWS 服务的统一工具。只通过一个工具进行下载和配置,您可以使用命令行控制多个 AWS 服务并利用脚本来自动执行这些服务。
准备工作
下载安装 AWSCLI
新建一个AWS S3 存储桶
配置一个用户授予该用户AmazonS3FullAccess权限
如何使用
设置初始化配置
1aws configure
文件列表
1aws s3 ls
上传文件
–acl 设置文件访问权限
1aws s3 cp 1.txt s3://bucket/1.txt --acl public-read
获取文件访问地址
1aws s3 presign s3://bucket/1.txt
多账号切换访问
1aws s3 ls --profile account
文档
aws s3 命令列表
MongoDB安装和使用
MongoDB 安装
简介
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MYSQL 和 MongoDB 的差异
MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。
优势:
1、在适量级的内存的MongoDB的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。
2、MongoDB的高可用和集群架构拥有十分高的扩展性。
3、在副本集中,当主库遇到问题,无法继续提供服务的时候,副本集将选举一个新的主库继续提供服务。
4、MongoDB的Bson和JSon格式的数据 ...
从零开始搭建一个苹果超级签名平台
超级签,企业签,TF签
为什么需要签名?
我们使用的iPhone,iPad都是IOS系统,它是属于苹果封闭的移动操作系统。
我们开发一款APP,正常情况必须上架到AppStore,然后用户通过AppStore进行下载,做过AppStore应用上架的小伙伴都知道,苹果为了营造一个良性的生态,所以对每一款应用进行监测,会用到机器审核,开发者账号监测,应用内容审核等等,这就导致了应用更新的周期难,加上一些限制或其它因素无法上架。这个时候就应运而生了上述的几种签名系统。
企业签名 大型企业才能注册的苹果企业账号,用于企业内部的应用测试分发的账号。分发特点是签名包具有时效性,比如签名时长为一个月,一个月之后包就不能使用了,需要重新签名,用户需要重新下载,安装完成打开的时候会提示未受信任的企业证书,需要手动去点击信任才能打开应用。
超级签名 利用普通的开发者账号100个测试资格来安装测试应用,需要获取用户的UDID并绑定到开发者账号才能打包。关于掉签问题,当苹果检测到这个开发者账号异常,会对账号进行封号或限制处理,这个时候用户端就出现应用无法打开的问题,这种情况就叫做掉签,需要用户端重新下载应用, ...
MySQL常用指令
mysql5.6授权123USE mysql;GRANT ALL PRIVILEGES ON `database`.* TO 'username'@'host' IDENTIFIED BY 'password';FLUSH PRIVILEGES;
mysql5.7授权12345678USE mysql;select User,Host,plugin,authentication_string from user;create user 'username'@'%';GRANT ALL PRIVILEGES ON `database`.* TO 'username'@'host';update user set authentication_string=password("password") where user='root';update user set plugin="mysql_na ...
正向代理,反向代理
正向代理
正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
http正向代理的两种方式:
普通模式(RFC 7230 - HTTP/1.1:Message Syntax and Routing)
隧道模式(Tunneling TCP basedprotocols through Web proxy servers)
隧道代理:也就是透传代理。代理服务器只是在TCP协议上透传HTTPS流量,对于其代理的流量的具体内容不解密不感知。客户端和其访问的目的服务器做直接TLS/SSL交互。
中间人(MITM, Man-in-the-Middle)代理:代理服务器解密HTTPS流量,对客户端利用自签名证书完成TLS/SSL握手,对目的服务器端完成正常TLS交互。在客户端-代理-服务器的链路中建立两段TLS/SSL会话。
为什么正向代理处理HTTPS流量需要特殊处理?
HTTPS流量的认证过程发生在客户端和反向代理服务器之间。 ...