XOR 与 RC5:从原理到 Go 实战(含安全替代建议)

XOR 与 RC4:从原理到 Go 实战(含安全替代建议) 副标题 / 摘要 用最少的数学解释 XOR 与 RC4 的工作机制,给出可运行的 Go 示例,并说明 RC4 的安全问题与替代方案。 目标读者 想读懂遗留 RC4 代码的后端工程师 想区分“编码”与“加密”的初学者 需要建立流密码心智模型的中级开发者 背景 / 动机 很多系统仍遗留 RC4 或“自研解密”的逻辑。常见误区是把 Base64 当作加密,或忽视“完整性校验”。理解 XOR 与 RC4,有助于正确评估安全性,并避免把旧方案复制到新系统。 核心概念 XOR(异或):按位运算,可逆 流密码:用伪随机密钥流与明文逐字节 XOR RC4:经典流密码,但已不推荐 Base64:编码,不是加密 完整性:仅加密不等于防篡改 实践指南 / 步骤 接收 Base64 字符串(通常是 RC4 输出) Base64 解码得到原始字节 用共享密钥初始化 RC4 将密钥流与字节逐字节 XOR 把输出按 UTF-8 转为字符串(若是文本) 可运行示例(Go) package main import ( "crypto/rc4" "encoding/base64" "fmt" ) func rc4XOR(key string, data []byte) ([]byte, error) { c, err := rc4.NewCipher([]byte(key)) if err != nil { return nil, err } out := make([]byte, len(data)) c.XORKeyStream(out, data) return out, nil } func encryptToBase64RC4(key, plaintext string) (string, error) { out, err := rc4XOR(key, []byte(plaintext)) if err != nil { return "", err } return base64.StdEncoding.EncodeToString(out), nil } func decryptBase64RC4(key, encoded string) (string, error) { raw, err := base64.StdEncoding.DecodeString(encoded) if err != nil { return "", err } out, err := rc4XOR(key, raw) if err != nil { return "", err } return string(out), nil } func main() { key := "demo-key" plaintext := "hello rc4" enc, _ := encryptToBase64RC4(key, plaintext) dec, _ := decryptBase64RC4(key, enc) fmt.Println(enc) fmt.Println(dec) } 运行: ...

2025年12月16日 · 2 分钟 · map[name:Jeanphilo]

用 UFW + CrowdSec,彻底阻止恶意端口扫描:从 Fail2ban 踩坑到终极解决方案

🛡️ 用 UFW + CrowdSec,彻底阻止恶意端口扫描 副标题 / 摘要: 如何安全防护你的服务器暴露端口?本文带你从 Fail2ban 的正则地狱走出,构建一个稳定、自动化、智能化的端口扫描防御系统。 🎯 目标读者 使用 FRP / 内网穿透的开发者 管理云服务器(腾讯云、阿里云、AWS 等)的运维人员 想防御端口扫描、SSH 暴力破解的新手或中级 Linux 用户 对 Fail2ban 感兴趣、想升级到更现代安全体系的人 想完善服务器安全方案的个人开发者 💢 背景 / 动机:为什么需要端口扫描防护? 在运行 FRP(frps + frpc)或开放多个端口时,你的服务器通常会遭遇: 海量扫描:每秒多次 SYN 探测 恶意连接尝试:get a user connection […] SSH 密码爆破 自动化脚本扫描 6001–6010、7000、22、8080 等常见端口 传统做法存在痛点: 防火墙(UFW)只能被动拒绝 Fail2ban 配置复杂、依赖正则、容易误判、不支持高级行为分析 FRPS 日志格式特殊,Fail2ban 很难匹配 攻击会占用 frps/sshd 资源,最终导致卡顿、断流 因此,我们需要一个无需写正则、能自动检测扫描、智能封禁恶意 IP 的现代防御体系。 📘 核心概念 FRP(frps / frpc):用于内网穿透,常暴露大量 TCP 端口(如 6001–6010),容易被扫描。 UFW(Uncomplicated Firewall):Ubuntu 默认防火墙,但缺乏智能检测功能。 Fail2ban:传统日志匹配型封禁工具,需要手写正则,踩坑概率高。 CrowdSec(推荐):新一代开放式入侵防御系统 (IPS),自动检测端口扫描和暴力破解,事件驱动 + 行为分析,资源消耗极低,是 Fail2ban 的现代替代。 🛠 实践指南:使用 CrowdSec 自动阻止端口扫描(Ubuntu/Debian) 1) 安装 CrowdSec curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash sudo apt install crowdsec -y 2) 安装防火墙封禁组件(iptables / ufw 自动配合) sudo apt install crowdsec-firewall-bouncer-iptables CrowdSec 会自动接管封禁动作。 ...

2025年11月22日 · 2 分钟 · map[name:Jeanphilo]