V2ray的加密算法一般是auto,部署时无需考虑加密算法。然而SS或SSR必须要选择一种加密算法/方法,部署时该选用哪种加密算法呢?
首先明确的是,不推荐以下加密算法:
- table
- rc4
- rc4-md5
- bf-cfb
- chacha20
- salsa20
- chacha20
本站提供的 SS一键脚本 和 SSR一键脚本 已默认移除了这些存在已知弱点的加密算法,请放心食用。
接下来考虑客户端的支持程度,几乎所有客户端都支持的加密算法是aes-256-cfb,但不少客户端不支持AHEAD/gcm系列算法。一般来说,客户端算法支持情况有如下规律:
aes-256-cfb > chacha20 = aes-128-cfb > chacha20-ietf > aes-256-gcm = aes-128-gcm = chacha20-ietf-poly1305 > xchacha20-ietf-poly1305
这也解释了为什么网上的教程默认都是aes-256-cfb算法(SSR服务端默认也是该算法),因为几乎所有客户端都支持啊!比如brook,其支持Shadowsocks协议,但仅限于aes-256-cfb算法!
接着看算法的高级程度。AHEAD算法不仅加密,而且能直接校验密文完整性,是未来的趋势,因此推荐使用。
再看速度和硬件支持。目前的cpu基本上都内置了这些算法的指令集,硬件执行性能无需担心。但是aes的gcm模式可并行加密和解密,稍占优势。
最后关于墙的识别。目前并无明确证据表明CFB/CTR或AHEAD算法被墙检测出了特征,均可以放心使用。虽然在十分敏感时期,不少人建议用AHEAD算法避免被封杀,然而这仅是猜测(相反本人还曾在推特上看到说墙已检测出AHEAD算法的特征,不建议使用)。
就个人经验来说,最肯定的情况是:用的人少流量少,哪种加密算法都没问题;用的人多流量大,挂的概率就大大提供,不管用哪种加密算法。
参考
1. https://fanqiang.software-download.name/ebook/03.8.html
2. https://www.pincong.rocks/article/3053
3. https://hostloc.com/thread-474180-1-1.html