加密 API 与手动实现的算法

Cryptographic API vs manually implemented algorithm

我试图在互联网上搜索,但找不到任何东西。 所以问题是:用什么更好? OS 提供密码 API 或手动 implemented/library 提供算法?

我知道,当 CPU 在 OS 系统调用后进入内核模式时,它会消耗大量的 CPU 周期,但另一方面我知道 OS 可以使用硬件加速相关加密。那么现实世界中的情况是怎样的呢?是否值得使用 OS 加密 API?

例如我从事的项目,使用 CRC32 和 MD5 算法。

编辑:我的主要目标是select最快的方法,其次是了解所有利弊。

MD5 可能随处可用。 CRC32 非常简单(并非真正的密码学),您可以直接在您的应用程序中包含或实现它。

Windows 加密 API 支持 multiple providers 并且默认提供程序可能完全在用户模式下实现,而无需为大多数事情切换到内核模式。 PRng 和 AES 加密可能在硬件中实现。

你的目标是什么?速度?没有后门?晦涩难懂的算法?

有用于 TLS 的硬件加速器,但主要用于 public 密钥加密。除非你有专门的比特币挖矿硬件,否则散列将在用户端和软件中完成。使用最方便的。