直接回答
因为安全与正确是两回事,而自造算法几乎无法证明安全。现代密码学算法(AES、RSA、SHA 系列)经过全球密码学家数十年公开攻击分析仍屹立不倒,这份信任无法靠个人闭门设计复制;自创算法的缺陷往往隐蔽,等被发现时数据早已泄露。"保密算法更安全"(security through obscurity)是被反复证伪的思路,柯克霍夫原则要求系统即使算法公开也依然安全。
展开解析
深层原因:密码学攻击面远超直觉,侧信道(时序、功耗)、填充预言、弱随机数、错误的模式组合(如 ECB)都能让"看起来随机"的算法一击即溃,这些需要专业对抗性分析,功能测试覆盖不了;正确实现比算法设计更难——连资深团队也会在常量时间比较、随机数生成上犯错,所以连标准算法也应使用久经考验的库(如 libsodium、官方 crypto 库)而非自己重写。相关红线:不要用哈希加盐"发明"密码存储方案(应用 bcrypt/scrypt/argon2),不要自创协议(用 TLS)。追问:哪些"自研"可以接受(基于标准原语、经评审的协议组合)与不可接受(自造算法/自实现原语)之分。