前言
我们平时开发的一些软件需要提供给客户做测试的时候 既想要客户能够验证功能是否达到要求 又怕开发的软件 被客户拿到手后不付钱 白嫖 所以需要在提供给客户前对软件做加密 公司是做红外图像算法相关的 最近在做红外和可见光图像融合 最终 成品代码是包括rknn模型和 C代码文件 所以准备提供给客户的时候 考虑到rknn模型和C代码打包成动态库和客户的硬件做一个绑定提示:以下是本篇文章正文内容,下面案例可供参考
一、加密的方式
我们想要的加密有两种方式:
1、一种是设置定时 就是从软件开始运行 设置可以运行的时间 也就是我们平时使用软件 会出现比如一个月的试用期
2、绑定硬件加密 比如我提供给客户的软件 客户只能在一台机器上运行 常见的比如网上一些卖网课的 教学视频类的 客户买了教学视频 只能在自己的电脑上使用 不能拷贝复制给其他人
二、重点介绍绑定硬件加密
1.加密原理
1、AES加密
2、DES 加密
3、非对称RSA加密
4、开源加密方案cryptopp使用
这个代码是开源的 github网址如下:
https://github.com/weidai11/cryptopp.git
大家可以下载下来直接使用
2.cryptopp开源软件使用
1、根据上述网址下载cryptopp软件
2、cryptopp软件使用:
#cryptopp g 命令查看这个开源软件支持的加密命令行
3、从输出来看 cryptopp 支持 AES DES RSA base64等加解密
3.加密流程图实现
1、我这次的加密主要是实现提供给客户代码后 绑定客户的唯一硬件。
1、根据上述github网址下载好cryptopp代码后
1、crytop生产 公钥和私钥
2、获取瑞芯微硬件板卡 serial id
#cat /proc/cpuinfo | grep serial
3、拿到serial id后 交给cryptopp进行 RSA加密
总结
待更新。。。