Sodium一个易于使用的可为我们提供加密、解密、签名,密码哈希等功能的软件库。除了自身强大的功能外,它还为我们提供了一个兼容API和一个外部API,以进一步的帮助我们提高其可用性。Sodium的目标是提供构建更高级别加密工具所需的所有核心操作。
Sodium支持跨平台和跨语言, 你可以在各种编译器和操作系统上运行它,包括Windows(使用MinGW或Visual Studio,x86和x86_64),iOS和Android。Javascript和WebAssembly版本也可用并受到完全的支持。
值得一提的是,虽然Sodium的设计着重高安全和易用性,但其整体速度与大多数实现相比更快。
libsodium 下载
Github
Tarballs 和 预编译二进制文件
在线文档
离线文档
该文档可下载保存为ePUB文件格式(适用于iPad,iPhone,Mac),MOBI(适用于Kindle)以及PDF:https://www.gitbook.com/book/jedisct1/libsodium/details
安装
在类Unix系统上编译安装
Sodium是一个共享库具有独立于机器的标头集,因此可以轻松地被第三方项目所使用。
该库使用autotools构建,因此非常易于打包。
安装也很简单,编译和测试都可利用多个CPU内核。
首先我们下载libsodium,然后执行以下命令:
./configure
make && make check
sudo make install
由于不同的文件被编译用于不同的CPU类,并且为了防止不必要的优化,因此建议尽量避免链接时优化(LTO)。
在Linux上,如果进程在make check步骤中挂起,则系统PRG可能没有正确播种。有关解决此问题的方法,请参阅“使用”部分中的说明。
在Windows系统上编译安装
通常不需要在Windows上进行编译,因为MinGW和Visual Studio的预构建库是可用的(参见下文)。
但是,如果你想自己编译,先从Git存储库克隆稳定分支。
然后可以在builds/msvc目录中找到Visual Studio的解决方案。
要使用mingw进行编译,请在win32或x64目标上运行/dist build/msys2-win32.sh或/dist build/msys2-win64.sh脚本。
预构建库
提供了可用于Visual Studio 2010,2012,2013,2015和2017的预构建x86和x86_64库,以及MinGW32和MinGW64的预构建库。包括头文件,以及所有受支持编译器版本的静态(.LIB)和共享(.DLL)库。
Visual Studio注意事项:
静态链接Sodium的项目必须定义一个名为SODIUMSTATIC的宏,这将防止符号定义被_dllexport引用。
交叉编译
支持交叉编译。以下是使用ARM嵌入式处理器的GNU工具交叉编译到ARM的示例
export PATH=/path/to/gcc-arm-none-eabi/bin:$PATH
export LDFLAGS='--specs=nosys.specs'
export CFLAGS='-Os'
./configure --host=arm-none-eabi --prefix=/install/path
make ins