有些程序会使用Chacha20加密算法,如果Centos7系统报错Exception: libsodium not found,则缺乏M2Crypto与libsodium依赖环境所致;
Salsa20是一种流加密算法,由Daniel J. Bernstein提交到eSTREAM。它创建在基于add-rotate-xor(ARX)操作的伪随机函数之上——32位模加、异或(XOR)和循环移位操作。Salsa20映射一个256位密钥、一个64位nonce以及一个64位流位置到一个512位的输出(也存在一个128位密钥的版本)。这使Salsa20具有了不同寻常的优势,用户可以在恒定时间内寻求输出流中的任何位置。它可以在现代x86处理器中提供约每4–14次循环周期一字节的速度,并具有合理的硬件性能。它没有注册专利,并且Bernstein还撰写了几篇对常见架构优化的公有领域实现。Salsa20已被提交到eSTREAM。
一个相关的密码算法ChaCha,具有类似的特点,但有不同的循环移位函数,已在2008年由Bernstein发布。
M2Crypto与Libsodium简介
M2Crypto:一个Python加密和SSL工具包
M2Crypto是用于OpenSSL特征为RSA,DSA,DH,EC,HMAC,消息摘要,对称密码(包括AES)的最完整的Python包装器。SSL功能实现客户端和服务器; Python扩展Python的httplib,urllib和xmlrpclib; 不可伪造的HMAC’AuthCookie用于网络会话管理; FTP / TLS客户端和服务器; S / MIME; ZServerSSL:Zope和ZSmime的HTTPS服务器:Zope的S / MIME信使。M2Crypto也可以用于为Twisted提供SSL。通过引擎接口支持智能卡。
Libsodium
用于加密,解密,签名,密码散列,其目标是提供构建更高级别加密工具所需的所有核心操作。尽管强调高安全性,但是原语比NIST标准的大多数实现更快。
如果你centos7系统需要支持Chacha20加密算法请使用以下命令安装
yum install m2crypto gcc -y
wget -N --no-check-certificate https://download.libsodium.org/libsodium/releases/libsodium-1.0.8.tar.gz
tar zfvx libsodium-1.0.8.tar.gz
cd libsodium-1.0.8
./configure
make make install
echo "include ld.so.conf.d/*.conf" > /etc/ld.so.conf
echo "/lib" >> /etc/ld.so.conf
echo "/usr/lib64" >> /etc/ld.so.conf
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig