PHP 加密:AES & RSA

最近两年一直从事与金融相关项目的开发与维护。但是,关于 PHP 加密解密的最佳实践,网上没有人给出一个完美的总结。恰逢最近看了《图解密码技术》一书,对 PHP 加解密有了更深刻的认识。为了避免各位看枯燥的文字理论,开篇我就把总结给出:AES 是对称加密、RSA 是非对称加密。截止目前为止,对称加密用 AES 算法...

代码调试技巧:PHP 代码调用栈

背景:我们经常会阅读别人的代码。特别是维护旧项目。有些项目代码写得杂乱,还稍带着用了一些冷门特性。或者,项目本身很复杂,又急于想快速搞定代码执行流程的时候。我们此时就非常想知道 PHP 代码的调用栈。博主曾经多次帮人快速定位错误,排查指定位置的代码为何会调用一些功能。基于以上原因,今天我们就来讲一讲在 PHP 项...

微服务之 PHP 浅尝 Thrift

微服务是用来解决海量请求的一种分布式架构方案。一、Monolithic 架构在讲 Thrift 之前,我们先来认识一下传统系统构架。我们把上图这种传统架构称为:Monolithic 架构。Monolithic 架构是目前中小型系统常用的构架方案。1.1)Monolithic 架构优缺点:它的优点是:开发简单直接,...

浅谈 PHP 项目四层架构

如今 PHP 项目开发离不开框架。主流的框架 Laravel、Yaf、YII 等都属于 MVC 类型的框架。如此多的框架,我们该如何抉择。在项目开发中我们应该怎样划分项目的结构就成了一个待讨论的问题。一、PHP 第一代开发模式:混编相信很多 PHP 开发者刚开始学习 PHP 的时候,都是把 HTML 与 PHP ...

服务器时差问题引发的问题思考与解决

背景:博主目前所在的公司出现了一个特别严重的情况:多台 Web 服务器之间的时钟不同步。导致数据库的时钟与服务器时钟之间存在时差。刚好我们的活动要根据一个用户签到来送福利。一个用户一天只能签到一次。用户在凌晨前面几秒签到了。但是,Web 服务器却判定为了第二天签到。数据库的时间却在昨天。导致最终福利赠送环境出现了...

设计模式优劣漫谈

《设计模式》这本书从 1994 年发布。此书作者是由四位作者共同编写。所以简称 Gof (“Gang of Four”,“四人帮”)。此书被很多开发者视为圣经。是指导开发的一本难得之书。博主自从工作以来,就总会不经意从身边的同事口中提到设计模式。包括我们的 PHP 官方文档当中,也提及了单例、工厂两种模式。最近看...

区块链接&比特币&电子货币加密

最近几年比特币火起来之后。我们通过它知道了一种技术:区块链。所以,博主也时刻保持对这个技术的关注。网络上对这个技术写得最好的莫过于我们的阮教授的博客了。区块链入门教程:http://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html比特币入门教程:ht...

PHP 仿微信红包金额随机

博主寒冰最近闲来无事。就想研究一下微信红包的金额随机算法。早在微信红包刚出来的时候就研究过。始终不得要领。后来,通过查阅诸多资料。听说要实现“正态分布”。这个理论的东西不想深挖。恰好在网上一篇博客找到一个相对完整的算法。我经过试用确实不错。经过我的一些优化达到了可用级别。PHP 源码如下:<?php cla...