openssl crypto++ libgcrypt 比较

crypto++ 是 C++ 库。 
openssl 据说许可证跟 GPL 有冲突,貌似这个是用的最广泛的加密解密函数库, 
一般是系统标配。

openssl用的最多,也最可靠,通常不会有太离谱的错误。 
支持的算法和协议最广泛也最多,也包括各类证书处理的功能。 
性能上感觉也是最好的,特别支持硬件加速的架构。 
可移植性也不错。 
所以没有特别的需要,没有什么理由不用openssl。 
  
crypto++功能上也不错,但是主要是密码学算法方面的,证书相关的这类辅助功能如果没记错的话是没有的。 
性能上应该也没问题,虽然是C++写的。但是因为是C++写的,某些场合移植比较有问题。 
可靠上面,不了解。 
  
libgcrypt是GnuPG衍生出来的,功能上最简单。如果够用的话也没问题。 
  
其实还有一个最重要的库给漏了,GNU TLS 
除了不支持ECC,它基本上和openssl差不多。本身它出现的目的就是为了取代openssl的。 
不过因为比较新,可靠性还需要观察。 
如果在维护一个老的GPL项目,想新增或者替换这方面的功能,GNU TLS是首选。 
  
  
不过如果自己从头开发GPL程序,在license上面openssl没有特别大的问题,似乎只要 
给openssl一个例外就好了。

时间: 2024-08-25 17:06:02

openssl crypto++ libgcrypt 比较的相关文章

windows下openssl编译

昨晚,在编译rabbitmq-c时,使用cmake生成vs项目文件时遇到下列错误: CMake Error at C:/Program Files/CMake/share/cmake-3.6/Modules/FindPackageHandleStandardArgs.cmake:148 (message): Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENS

安全通信系统--OpenSSL服务器和客户端

环境配置 SSL的初始化 这一步主要使用OpenSSL提供的函数设置算法.证书等,一般步骤都固定了的,初始化流程示意图如下所示: SSL初始化流程图 主要代码为: [cpp] view plain copy print? SSL_load_error_strings(); /*为打印调试信息作准备*/ OpenSSL_add_ssl_algorithms(); /*初始化*/ //meth = TLSv1_server_method(); /*采用什么协议(SSLv2/SSLv3/TLSv1)在

openssl使用+Demo

1. websiteSSL(secure Socket Layer)TLS(transport Layer Security) - SSL3.0基础之上提出的安全通信标准,目前版本是1.0openssl 主页 -> http://www.openssl.org/openssl 中文文档 -> http://www.chinaunix.net/jh/13/478901.html 2. 如何编译OpenSSL in Windows?a) 下载openssl -> openssl-0.9.8i

python:使用OpenSSL

(一)安装pyOpenSSL 1.下载并安装 https://launchpad.net/pyopenssl             pyOpenSSL-0.11.winxp32-py2.7.msi 2.导入pyOpenSSL库 >>> import OpenSSL (二)基础知识 1.OpenSSL.crypto.X509() X.509是一种非常通用的证书格式.所有的证书都符合ITU-T X.509国际标准:因此(理论上)为一种应用创建的证书可以用于任何其他符合X.509标准的应用.

OpenSSL编程

简介 OpenSSL是一个功能丰富且自包含的开源安全工具箱.它提供的主要功能有:SSL协议实现(包括SSLv2.SSLv3和TLSv1).大量软算法(对称/非对称/摘要).大数运算.非对称算法密钥生成.ASN.1编解码库.证书请求(PKCS10)编解码.数字证书编解码.CRL编解码.OCSP协议.数字证书验证.PKCS7标准实现和PKCS12个人数字证书格式实现等功能. OpenSSL采用C语言作为开发语言,这使得它具有优秀的跨平台性能.OpenSSL支持Linux.UNIX.windows.M

libcurl 多线程使用注意事项(补充)——HTTPS,openssl多线程使用加锁

问题 多线程libcurl运行一段时间后出现崩掉,没有确定的点,没有确定的URL.一直查看源代码没有问题,最后通过debug跟踪发现是在访问SSL的时候出现的crash. 才想起来openssl是不支持多线程的,要自己做加锁处理.而且libcurl中并没有支持相关的加锁操作. 解决办法: 在初始化libcurl的时候为openssl创建一个互斥锁函数,一个回调函数传给openss openssl锁l函数原形 :void (* func )(int ,int , const char * ,int

翻译 - openssl(1) 文档

原文:openssl documents 命名 大纲 描述 命令摘要 标准命令 消息摘要命令 编码与加密命令 口令参数 参考 历史 命名 openssl - OpenSSL命令行工具 大纲 openssl 命令 [ 命令选项 ] [ 命令参数 ] openssl [ 标准命令 | 消息摘要命令 | 加密命令 | 加密算法 | 消息摘要算法 | 公钥算法 ] openssl no-XXX [ 任意选项 ] 描述 OpenSSL是一个密码学工具集,它实现了安全套接层(SSL v2/v3)与传输层安全

OpenSSL.Net使用随记(二)

前面已经把使用OpenSSL.Net环境准备好了,现在来调用几个常用算法的实现 MD5,SHA1 在这只需要注意下OpenSSL.Crypto.MessageDiges后面签名算法会用到. 1 class Program_Hash 2 { 3 static void Main(string[] args) 4 { 5 var ciphertext = MD5("Md5加密.", Encoding.UTF8); 6 ciphertext = SHA1("SHA1加密."

linux误卸载openssl后的恢复

一.原因 由于在编译mysql时,报ssl错误,于是想卸载openssl再重新安装 rpm -qa|grep openssl rpm -e openssl-1.0.2k-16.el7_6.1.x86_64 rpm -e openssl-1.0.2k-16.el7_6.1.x86_64 --nodeps rpm -e openssl-libs-1.0.2k-16.el7_6.1.x86_64 --nodeps rpm -e openssl-devel-1.0.2k-16.el7_6.1.x86_6