CryptoPP C++库学习使用
本文最后更新于:2023年12月17日 下午
前言
参考书籍:《深入浅出CryptoPP密码学库》
crypto++ 密码学库 :https://github.com/weidai11/cryptopp
电子书下载 :https://gitee.com/locomotive_crypto
最近在学习比特币相关技术,在比特币系统中使用大量哈希加密、签名验证等操作,为了用代码来模拟实现比特币的运行过程,学习一个支持密码原语操作的第三方库是非常有必要的。
最为知名的密码学相关开源库应该是OpenSSL了,但是由于官网是一堆英文,学习起来太吃力,后来机缘巧合下发现了CryptoPP这个库,而且还有专门的中文书籍来讲解使用,因此就决定学习CryptoPP库,本篇论文也是基于《深入浅出CryptoPP密码学库》阅读,整理出关键章节内容,供大家参考学习。
1. CryptoPP库的安装使用这里不再详细说明,请大家自行搜索网上教程
2. 后来看到OpenSSL也有一个中文手册学习网站,也推荐给大家https://www.openssl.net.cn/
string 和 SecByteBlock类型互换
1 |
|
第四章 初识CryptoPP库
Hex编解码字符串
1 |
|
第五章 随机数生成器
主要可以关注GenerateBlock方法,生成指定字节长度的随机数
1 |
|
第六章 Hash函数
1 |
|
第十一章 公钥密码学数学基础
大整数 与 大素数生成
- 可以再研究一下大整数的一些用法
1 |
|
第十三章 数字签名
电子书给出的参考是ECNR数字签名算法
https://www.cryptopp.com/wiki/Elliptic_Curve_Digital_Signature_Algorithm -》关于压缩公钥的实现可以参考 Compressed Point 这一部分
私钥和公钥生成、保存
1 |
|
私钥和公钥的加载、签名和认证
1 |
|
CryptoPP C++库学习使用
https://2017zhangyuxuan.github.io/2021/11/01/2021-11/2021-11-01 CryptoPP库使用/