# 图像秘密共享 **Repository Path**: hu-xiao-yun/image-secret-sharing ## Basic Information - **Project Name**: 图像秘密共享 - **Description**: 这是一个用于对图像进行秘密分发的应用,也可以进行图像的隐藏与提取 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-03-22 - **Last Updated**: 2024-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 图像秘密共享 #### 介绍 什么是图像秘密共享:秘密共享的思想是将秘密以适当的方式拆分,拆分后的每一个份额由不同的参与者管理,单个参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密消息。更重要的是,当其中任何相应范围内参与者出问题时,秘密仍可以完整恢复,图像秘密共享是秘密共享在图像领域的应用。
这是一个用于对图像进行秘密分发的应用,对于每一个秘密份额可以利用图像进行隐藏与提取,用到了openssl和mysql,相关的包已经打包。
#### 软件架构 #### 安装教程 1. 在mysql里相应的数据库新建三张表:pub_info_cont,pub_info_num,user_password.
``` create table pub_info_cont(cnt int unsigned not null); create table pub_info_num(num int not null primary key,pos varchar(150) not null); create table user_password(name varchar(50) not null primary key,password varchar(50) not null); ``` 我这里实现了登录界面,如果你不需要,可以修改代码去掉登录界面,如果要用登录界面,需要在user_password里添加用户。需要注意的是,user_password的密码是由原始密码Md5加密后Base64编码得到,添加用户时需要注意,下面是处理原始密码的qt代码 ``` QByteArray array="密码"; QCryptographicHash hash(QCryptographicHash::Md5); //Md5加密 hash.addData(array); //添加数据 QByteArray retArray = hash.result(); //加密后的数据 QByteArray retArrayBase64 = retArray.toBase64(); ``` 2. 修改配置文件info.json并把它复制到运行目录下,格式如下 ``` { "name":"用户名称",//可以不设置 "password":"密码",//可以不设置 "sqluser":"sql用户名", "sqlpassword":"sql密码", "dbname":"保存上面三张表所在数据库名", "ip":"数据库IP", "port":"数据库端口" } ``` 3. 在qtcreator编译运行 #### 使用说明 登录界面:
![输入图片说明](%E7%99%BB%E5%BD%95%E7%95%8C%E9%9D%A2.png)
除了登录界面,主要有三个界面,图像秘密分发界面、图像恢复界面和图像隐藏界面
1.分发界面
![输入图片说明](%E5%88%86%E5%8F%91%E7%95%8C%E9%9D%A2.png)
这个界面需要输入参与人数,点击确认键后会生成子秘密的名字,可以修改但必须保证不重复。然后在下面设置授权结合,也就是那些组合可以恢复出图像。
2.恢复界面
![输入图片说明](%E6%81%A2%E5%A4%8D%E7%95%8C%E9%9D%A2.png)

3.隐藏界面
![输入图片说明](%E9%9A%90%E8%97%8F%E7%95%8C%E9%9D%A2.png)