当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP+Vue实现前后端加密的轻量级方案分享

发布:smiling 来源: PHP粉丝网  添加日期:2026-03-26 20:20:23 浏览: 评论:0 

在做项目的时候,我遇到一个需求:前后端需要传输一些敏感数据。

虽然 HTTPS 已经可以保证传输安全,但在某些场景下,我还是希望能再加一层保护:

防止接口被随便模拟调用

就算数据被截获,也看不懂里面的内容

就算用劫持的数据请求,也不进行响应

我最开始也去找过现成的方案,确实有一些成熟的实现。

但问题是——它们的功能太多、体系太重,而我的需求其实很单纯,只需要“在请求上套一层加解密”。

所以与其硬拗那些复杂的框架,不如自己写一个更轻量的版本。

我的解决方式

于是,我就写了一个前后端配套的小工具:

前端:Vue 环境下的 npm 包

后端:PHP Composer 库

核心思路是:

前端自动加密请求体

后端自动解密请求体

开发者几乎不需要关心加解密细节,就像在用普通的请求一样

内置 AES-128-CBC 加密、签名机制、防重放攻击

允许一定的时间误差,避免前后端时钟不一致

用起来的样子

前端示例:

通过 npm install hejunjie-encrypted-request 引用

  1. import { encryptRequest, EncryptOptions } from "hejunjie-encrypted-request"
  2.  
  3. const options: EncryptOptions = { 
  4.   appKey: "your-app-key"// 签名密钥,用于接口签名校验(32位字母或数字) 
  5.   aesKey: "your-aes-key"// AES 加密的密钥(16位) 
  6.   aesIv: "your-aes-iv"// AES 加密的初始化向量(16位) 
  7.   token: "optional-token"// 可选的认证令牌,PHP 端可用于用户验证 
  8. }; 
  9. // 请求数据 
  10. const data = { name: "张三" }; 
  11. // 生成密文 
  12. const encrypted = encryptRequest(data, options); 
  13. // 发送请求 
  14. request.post("/api/user/info", encrypted) 
  15.   .then(res => console.log(res)); 

后端示例:

通过 composer require hejunjie/encrypted-request 引用

  1. use Hejunjie\EncryptedRequest\EncryptedRequestHandler; 
  2.  
  3. $param = $_POST// 自行获取前端请求的参数 
  4.  
  5. $handler = new EncryptedRequestHandler(); 
  6. try { 
  7.     $data = $handler->handle( 
  8.         $param['en_data'] ?? ''
  9.         $param['timestamp'] ?? ''
  10.         $param['sign'] ?? '' 
  11.     ); 
  12. } catch (\Hejunjie\EncryptedRequest\Exceptions\SignatureException $e) { 
  13.     echo "签名错误: " . $e->getMessage(); 
  14. } catch (\Hejunjie\EncryptedRequest\Exceptions\TimestampException $e) { 
  15.     echo "时间戳错误: " . $e->getMessage(); 
  16. } catch (\Hejunjie\EncryptedRequest\Exceptions\DecryptionException $e) { 
  17.     echo "解密错误: " . $e->getMessage(); 
  18.  
  19. print_r($data); // ['name' => '张三'] 

整体就是“即插即用”,加密解密几乎是无感的。

意义在哪里

这个方案不是什么替代 HTTPS 的黑科技,它更像是一个“小插件”:

HTTPS 解决传输安全

我这套方案解决“再多一层壳”的需求

适合那些 对安全性有点额外要求,但又不想引入复杂框架 的项目。

Tags: PHP+Vue加密 PHP+Vue轻量级

分享到: