该选用哪种加密算法?

V2ray节点|
1230

V2ray的加密算法一般是auto,部署时无需考虑加密算法。然而SS或SSR必须要选择一种加密算法/方法,部署时该选用哪种加密算法呢?

首先明确的是,不推荐以下加密算法:

  1. table

  2. rc4

  3. rc4-md5

  4. bf-cfb

  5. chacha20

  6. salsa20

  7. 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算法的特征,不建议使用)。

 

就个人经验来说,最肯定的情况是:用的人少流量少,哪种加密算法都没问题;用的人多流量大,挂的概率就大大提供,不管用哪种加密算法。