Ubuntu安裝、使用 Crypto++加密算法库

一、简介

    Crypto++ Library 是一个非常著名的开源密码学库。它是用C++编写的,提供了广泛的密码学功能,可以用于安全通信、数据加密、数字签名、密码学研究等领域。以下是Crypto++库的一些主要特点和功能:

    1)丰富的密码学算法支持:Crypto++支持多种密码学算法,包括对称加密算法(如AES、DES、Blowfish)、非对称加密算法(如RSA、DSA、ECC)、哈希函数(如SHA-1、SHA-256、MD5)、数字签名、伪随机数生成器等。

    2)跨平台支持:Crypto++可在多种操作系统上运行,包括Windows、Linux、macOS等。它使用了标准的C++语言特性,因此可以轻松地在不同平台上编译和使用。

高性能:该库被设计为高性能的密码学库,经过了优化以提供快速的加密和解密速度。

    3)开源:Crypto++是开源项目,遵循自由软件许可协议,允许用户查看、修改和分发源代码。

广泛的应用:Crypto++在许多领域都有广泛的应用,包括网络安全、加密通信、数字证书、虚拟私人网络(VPN)、数据库加密、密码学研究等。

    4)C++标准库兼容性:Crypto++与C++标准库兼容,易于集成到C++应用程序中。

    5)官方地址:https://www.cryptopp.com/

二、安装

    1)使用工具安装
    Ubuntu中安装Cryptopp库最方便的方式就是使用apt,安装指令如下:   

#安装Cryptopp库
sudo apt install libcrypto++-dev

    2)源码编译安装

    要使用最新版的Cryptopp,可以下载最新的Cryptopp源码,编译后安装,官网见第一章节,也可以从GitHub上下载,鉴于国内访问受限,还可以从gitee上下载安装,如下:

​#下载Cryptopp源码
git clone https://gitee.com/PaddleGitee/cryptopp.git
#进入文件夹
cd cryptopp
#编译,多cpu处理
make -j2
#安装,默认路径:/usr/local
sudo make install

三、测试

    以下是SHA1的一个源码实例:

#include <iostream>
#include <cstdlib>
#include "cryptlib.h"
#include "filters.h"
#include "files.h"
#include "sha.h"
#include "hex.h"
int main () {
    using namespace CryptoPP;
    SHA1 hash;
    std::string msg = "Crypto++ is a free C++ library for cryptography.";
    std::string digest;
    HexEncoder encoder(new FileSink(std::cout));

    hash.Update((const byte*)msg.data(), msg.size());
    digest.resize(hash.DigestSize());
    hash.Final((byte*) digest.c_str());

    std::cout << "Message: " << msg << std::endl;
    std::cout << "SHA1 Digest: ";
    StringSource(digest, true, new Redirector(encoder));
    std::cout << std::endl;

    return EXIT_SUCCESS;
}

 编译指令:

#创建main.cc文件,将代码拷贝后,执行如下编译指令
g++ -I/usr/local/include/cryptopp -o run main.cc -L/usr/local/lib/libcryptopp.a -lcryptopp

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值