第一次接触渗透感觉十分的不熟悉,我对前面的课程有很多都没有学到位,很多都听不懂,最初几节课的环境搭建感觉听的云里雾里的。之前授课老师和这门课的老师讲课方式不一样,所以还没有适应。我不知道环境搭建需要那些东西,而且我感觉老师讲课的方式有点乱,我之前的课程很多忘记了,所以接收的慢。我看回放的时候,有些上课的内容视频回放里面没有。
一、 传输层加密:HTTPS 协议(最核心)
这是 Web 通信中最基础也是最关键的加密方式,作用于 TCP/IP 传输层与应用层之间,通过 SSL/TLS 协议实现数据加密。PHP 本身不需要额外编写加密代码,只需配置 Web 服务器(Nginx/Apache)开启 HTTPS。
1.核心原理
采用非对称加密(RSA/ECC)完成密钥协商,生成临时的对称加密密钥(AES)。
后续数据传输全部使用对称加密(效率更高),同时通过消息认证码(MAC) 验证数据完整性。
2.注意事项
证书必须由可信 CA 机构签发(避免自签名证书的安全警告)。
配置 Web 服务器时,禁用老旧的 SSLv3、TLSv1.0/TLSv1.1 协议,只保留 TLSv1.2/TLSv1.3。
二、 应用层加密:PHP 代码级加密
当需要对特定敏感数据(如用户密码、支付信息)进行加密,或在非 HTTPS 场景下(如内部接口、Socket 通信)传输数据时,需要在 PHP 中通过代码实现加密。
1. 对称加密(共享密钥加密)
特点:加密和解密使用同一个密钥,效率高,适合加密大量数据。PHP 推荐使用 openssl 扩展实现(替代已废弃的 mcrypt 扩展)。
常用算法:AES(Advanced Encryption Standard)
AES 是目前最安全的对称加密算法,常见模式有 CBC(需要初始化向量 IV)、GCM(自带完整性校验)。
注意事项
密钥长度需与算法匹配:AES-128(16 位)、AES-192(24 位)、AES-256(32 位)。
IV 必须随机生成且加密解密一致,不可硬编码;推荐使用 openssl_random_pseudo_bytes() 生成随机 IV。
优先使用 GCM 模式,该模式自带完整性校验,比 CBC 更安全。
2. 非对称加密(公钥私钥加密)
特点:加密用公钥,解密用私钥,安全性高但效率低,适合加密少量数据(如对称密钥、签名)。常用算法:RSA。
核心用途
场景 1:A 用 B 的公钥加密数据 → 只有 B 的私钥能解密,保障数据机密性。
注意事项
密钥长度建议 2048 位及以上,1024 位已被认为不安全。
RSA 加密数据长度有限制(约为密钥长度 / 8 - 11),不能直接加密大文件。
私钥必须妥善保管,绝对不能泄露到公网。
3. 哈希与签名(保障数据完整性)
哈希算法用于验证数据是否被篡改,签名算法用于验证数据来源。
(1) 哈希算法(不可逆)
常用算法:md5(已不安全,不推荐)、sha256、sha512。PHP 推荐使用 hash() 函数或 hash_hmac() 函数(带密钥的哈希)。
(2) 数字签名(RSA 签名)
结合非对称加密,用于防篡改 + 防抵赖。流程:发送方用私钥签名 → 接收方用公钥验签