使用Crypto++加解密类库实现密码管理系统

本文介绍了如何利用Crypto++库在32位Ubuntu上构建一个密码管理器,包括多用户系统,密码的HMAC校验和AES加解密。程序通过函数指针设计,确保内存管理有效。密码以(域名、AES加密后的密码、HMAC)形式存储,提供安全的密码保护。
摘要由CSDN通过智能技术生成

       Crypto++是一个免费的加解密类库,集成了很多的加解密算法,如des, aes, rsa等基础加密算法。本文主要谈一下本人最近实现的一个密码管理器,编译环境是32位Ubuntu,主要实现了多用户系统,可以创建用户、创建完成之后将密码经过HMAC存入用户文件、用户登录后需要对用户文件进行完整性检测保证外部修改、添加删除修改查看密码记录、记录以(域名、aes加密后密码、前两者结合的HMAC)形式存入文件。


程序架构

        由于管理器采用终端显示设计,就是说不同的代码段会不停地被调用。如果程序设计得不好的话,容易造成函数的嵌套调用,甚至栈空间无法释放,内存泄露等问题。为了避免这个问题,使用函数指针来规划整一个程序,有点像回调函数的感觉。整个管理器在运行时维护一个函数指针,每一次的函数调用都由这个指针来指定,而且保证每一个函数都执行完毕,避免函数变量占用栈空间。

typedef void (*func)();<span style="font-family: Arial, Helvetica, sans-serif;">     </span>

        以上代码定义了一个指针类型func,该指针类型可以指向一个返回值为void、0个参数的函数。因此,定义的功能函数中,都需要保证符合这一指针类型。

整体流程:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值