Ruby 通过 FFI 绑定到 Networking and Cryptography (NaCl) 库 (又名 libsodium)
====== libsodium/NaCl 为什么如此重要? NaCl 是一种不同类型的加密库。过去的加密库都是各种零碎的组件,比如密码、MAC、签名算法和哈希函数。要完成任何事情,你都必须做出很多关于要使用哪些具体组件的决定,如果其中任何决定都错误,结果就是一个不安全的系统。这些选择也并不容易:EAX? GCM? CCM? AES-CTR? CMAC? OMAC1? AEAD? NIST? CBC? CFB? CTR? ECB? OMGWTFBBQ!
NaCl 将加密技术置于 Rails 上! 与其让您选择要使用哪些加密原语, NaCl 通过专家组装的高级加密 API 实现了配置优先于约定,不仅确保了数据的保密性,还能检测篡改。这些高级、易于使用的 API 设计上默认很难被攻击,而像 OpenSSL 等库所暴露的原语则不具备这种特性。
这种方法使 NaCl 更接近于 GPG 这样的系统,而不是像 OpenSSL 这样的库中的加密原语 API。此外,NaCl 还使用了最先进的加密算法,包括 Curve25519 椭圆曲线和 XSalsa20 流密码。这意味着使用 NaCl,您不仅可以获得一个默认安全的系统,还可以获得一个极其快速且密钥相对较小的系统。
注意: 有可用的 Windows 安装说明。
要使用 RbNaCl,
Yes. [github-action]: https://github.com/RubyCrypto/rbnacl/actions
暂无开放 Issues,或尚未同步最近议题。