SecretPixel:一款整合了多种技术的高级图像隐写工具

news2024/11/15 5:01:08

关于SecretPixel

SecretPixel是一款先进的隐写术工具,旨在安全地隐藏图像中的敏感信息。它结合了先进的加密、压缩和种子最低有效位 (LSB) 技术,为隐藏数据提供了一种不可检测的强大解决方案,在数字隐写术领域脱颖而出。

功能介绍

1、高级加密:SecretPixel 使用 AES-256 加密数据,并使用 RSA 公钥加密技术进一步加密会话密钥。这种双层加密确保只有相应 RSA 私钥的持有者才能解密隐藏信息,从而提供高水平的安全性;

2、压缩:加密前,使用 zlib 压缩数据以减小其大小。这不仅使流程更加高效,还有助于最大限度地减少可能被隐写分析工具检测到的模式;

3、种子 LSB 隐写术:该工具采用种子随机数生成器来确定用于嵌入数据的像素位置。这种方法将隐藏位分散到整个图像中,使其更能抵抗 zsteg 等隐写分析工具的检测;

4、文件名存储:SecretPixel 将隐藏数据的原始文件名存储在图像中。这样可以使用原始名称提取文件,从而提供额外的便利并保持文件身份。

5、跨平台兼容性:SecretPixel 用 Python 编写,是跨平台的,可以在安装了 Python 的任何系统上使用;

安全性和隐秘性

SecretPixel 的设计充分考虑了安全性和隐秘性。加密过程可确保隐藏数据的机密性,而数据的压缩和随机分布使隐秘分析工具极难检测到嵌入信息的存在。使用种子随机数生成器增加了额外的安全性,因为如果不知道种子,就无法预测嵌入数据的模式。

支持的图片文件类型

PNG

BMP

TGA

TIFF

工具要求

cryptography>=42.0.2

Pillow>=9.0.1

numpy>=1.21.6

工具安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/x011/SecretPixel.git

然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:

cd SecretPixel

pip install -r requirements.txt

生成 RSA 密钥

SecretPixel 使用 RSA 公钥加密来保护嵌入的数据。首先,您需要生成一对 RSA 密钥:一个私钥和一个公钥。我们提供了一个辅助 Python 脚本来促进此过程。

密钥生成脚本

generate_keys.py脚本会创建一个 4096 位 RSA 密钥对。要生成密钥,请按以下步骤操作:

1、使用 Python 运行脚本:

python generate_keys.py

2、出现提示时,输入 RSA 私钥的密码。此密码使用 AES-256 加密私钥,增加了一层安全性,确保即使密钥被泄露,如果没有密码也无法使用。选择强大而复杂的密码以获得最大程度的保护。

3、成功完成后,脚本将在当前目录中创建两个文件:

myprivatekey.pem:您的 RSA 私钥,使用您提供的密码加密。

mypublickey.pem:您的 RSA 公钥,可以安全地与他人共享。

工具使用

隐藏文件

下列命令可以将一个文件隐藏在一张图片中:

python secret_pixel.py hide host.png secret.txt mypublickey.pem output.png

该命令使用公钥mypublickey.pem将secret.txt嵌入到了host.png里面,并将隐写图像保存为output.png。

提取文件

下列命令可以从图片中提取一个隐藏文件:

python secret_pixel.py extract carrier.png myprivatekey.pem [extracted.txt]

该命令可以使用私钥myprivatekey.pem从carrier.png中提取隐藏文件。如果没有提供extracted.txt,则提取出的文件会使用原始文件名命名。

许可证协议

本项目的开发与发布遵循GPL-3.0开源许可协议。

项目地址

SecretPixel:【GitHub传送门】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2067789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024 Python3.10 系统入门+进阶(七):字符串及其常用操作详解上篇

目录 一、初始化二、索引三、常用操作3.1 拼接字符串3.1.1 ""号3.1.2 join()方法 3.2 检索字符串3.2.1 find() 方法——字符串首次出现的索引位置(rfind()、index()、rindex())3.2.2 count() 方法——统计字符串出现次数3.2.3 len() 函数——计算字符串长度或元素个数…

RabbitMQ的高可用

1.Rabbit集群 采用集群模式保护消息的完整。 1.1普通集群 在普通集群模式下,各个节点之间有相同的元数据,即队列结构,而消息不会冗余(不同节点的消息不同)。 消费时,如果消费的不是存有数据的节点&…

如何用Python进行民宿数据分析:一步步教你实现可视化

🍊作者:计算机毕设匠心工作室 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目…

基于swifter多内核的加速Pandas DataFrame操作运行

swifter是提高pandas性能的第三方包,主要是apply函数。 接口支持范围: 运行环境和安装 操作系统是Win10 64,pandas版本是2.2.2,swifter版本是1.4.0。 pip安装 $ pip install -U pandas # upgrade pandas $ pip install swifter # first time installation $ pip inst…

Android 架构模式之 MVVM

Android 架构 Android 架构模式之 MVCAndroid 架构模式之 MVPAndroid 架构模式之 MVVM 目录 Android 架构架构设计的目的对 MVVM 的理解代码ModelViewViewModel Android 中 MVVM 的问题试吃个小李子BeanModelViewViewModel效果展示 大家好! 作为 Android 程序猿&a…

大数据ETL工具(Sqoop, DataX, Kettle)对比

文章目录 1. ETL简介2. Sqoop2.1 Sqoop简介2.2 Sqoop主要特点 3. DataX3.1 DataX简介3.2 DataX框架设计3.3 DataX的主要特点 4. Kettle4.1 Kettle简介4.2 Kettle的主要特点 5. 工具对比5.1 DataX 与 Sqoop对比5.2 DataX 与 Kettle 6. 总结 1. ETL简介 ETL(Extract-…

Mamba来搞图像增强了!高创新,发小论文不愁!

用Mamba做图像增强是个创新性比较高的方向,因为Mamba拥有非常独特的架构设计,能够同时捕获全局和局部的信息,轻松助力模型理解图像的整体结构和上下文,帮助我们确保图像细节的准确恢复和增强。 这种优势让它在保持高效计算的同时…

MySQL主从复制重新初始化单表或者单库的方法

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等) 公众号:老苏畅谈运维 欢迎关注本人公众号,更多精彩与您分享…

【C++ Primer Plus习题】3.7

问题: 解答: #include <iostream> using namespace std;const float GALLO_TO_LITRE 3.785; const float KM_TO_MILE 62.14;int main() {float litre 0;float gallo 0;float mile 0;cout << "请输入汽车油耗(每100km消耗的汽油量单位为升):";cin &…

C#下在派生类中引发基类事件的方法与示例

文章目录 基类事件在派生类中的定义及触发方式基类事件的传播机制示例总结 在面向对象编程中&#xff0c;继承是代码复用的一种重要方式。C#作为一种面向对象的编程语言&#xff0c;允许派生类继承基类的属性和方法。基类定义了一系列共有的属性和行为&#xff0c;而派生类则可…

【UE】尝试一种老派的平面假反射做法,与进一步改进效果的思路

在实践中&#xff0c;常常需要为类似荧幕&#xff0c;LED广告牌等平面制作反射。 但会遇到各种问题&#xff0c;例如在使用屏幕空间反射时&#xff0c;平面必须在画面内 平面反射捕获与光线追踪又代价高昂 因此&#xff0c;在一些情况下依然会使用一种历史悠久的反射手法 这种…

树(二叉树)

树 1.1 特性 1.1.1 什么是树 树(Tree)是(n>0)个节点的有限集合T&#xff0c;它满足两个条件&#xff1a; (1) 有且仅有一个特定的称为根&#xff08;Root&#xff09;的节点。 其余的节点可以分为m&#xff08;m≥0&#xff09;个互不相交的有限集合T1、T2、……、Tm&#x…

【Docker】Linux系统以及威联通QNAP部署思源笔记的通用教程

本文首发于 ❄️慕雪的寒舍 本文测试的是旧版本v2.11.4的部署方式&#xff0c;实测当前&#xff08;2024.08.15&#xff09;最新的v3.1.3版本也可以用相同的方式部署。本文的部署方式共写了三种&#xff0c;非qnap的linux系统也可以参考本文部署思源笔记。 阅读本文之前&#…

SpringBoot 集成积木报表

SpringBoot 集成积 前言 积木报表是jeecg的一款开源但代码不开源的一款自定义报表&#xff0c;可以基于网页灵活 调整报表的布局、样式等内容&#xff0c;无需编程&#xff0c;专为企业数据分析、报表制作而设计&#xff1b; 降低管理人员汇总制作报表的门槛&#xff0c;解决…

在表格上,按照单元格数值显示单元格背景进度条

想要实现的效果如下&#xff1a; 单元格背景进度条的大小取决于当前单元格里的数值 TreeList和GridControl的设置方法都是相同的&#xff1a;都是通过给列设置FormatRule来实现的。 相关代码及设置如下&#xff1a; 1、给控件绑定数据源&#xff0c;我的数据源是一个DataTab…

25届网安秋招,信息泄露常问之配置信息泄露

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s?…

基于STM32开发的智能花园灌溉系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 系统初始化土壤湿度监测与处理灌溉控制与状态指示Wi-Fi通信与远程监控应用场景 家庭花园智能灌溉农业田地的智能灌溉管理常见问题及解决方案 常见问题解决方案结论 1. 引言 随着智能家居技术…

录屏神器!一键搞定视频录制,小白也能轻松上手

在工作当中录制会议内容或者看电影录制精彩瞬间、学习时录制网课的重点部分等等都是需要借助可以实现屏幕录制的工具&#xff0c;让我们的日常更加精彩并且有回忆的记录&#xff0c;今天就来给大家整理了四款好用的录屏工具&#xff0c;实现保存高清、流畅的电脑屏幕的精彩记录…

重定向

重定向原理 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> int main() { close(1); int fd open("myfile", O_WRONLY|O_CREAT, 00644); if(fd < 0){ perror("o…

V-ASSISTANT软件无法设置V90伺服软限位

使用V-ASSISTANT软件配置V90伺服参数时&#xff0c;软限位功能是灰色且未勾选&#xff0c;无法设置软限位&#xff0c;如下图所示&#xff1a; 原因&#xff1a;设置零点位置之后需要在PLC中激活软限位&#xff08;如FB284中ConfigEPOS管脚的Bit2&#xff09; FB284中的Confi…