第一章 绪论
1.1研究背景
1.2研究意义
1.3主要工作

第二章 图片隐写和LSB算法
2.1关于图片隐写术
2.2LSB算法

第三章 系统设计与实现
3.1图像的加载
3.2文本的预编码
3.3文字编码
3.4图片编码

第四章 功能测试及线上部署
4.1功能测试
4.2线上部署

第五章 总结及展望
5.1总结
5.2展望

第一章 绪论

1.1研究背景

 随着信息技术和个性化网络服务的飞速发展, 人们越来越依赖于同步个人数据到网络服务平台, 如Dropbox、百度云、有道云笔记等, 以便在社交网络中动态更新和共享。然而, 在体验网络服务带来的资源共享、便捷交流的同时, 用户的个人数据也面临着被窃取的风险。这给人们的个人信息、财产安全造成极大的影响。因此信息隐藏技术显得尤为重要

计算机技术发展和Internet广泛应用,越来越多的信息在网络上传输,在给 人们方便的同时,也带来极大安全隐患。作为信息的主要载体图像,其安全性也倍受关注。 图像加密作为保障图像信息安全的核心思路,已成为目前的研宄热点。
信息时代的发展,信息安全扮演着越来越重要的角色,在某些时候,其甚至威胁到国家的安全。密写技术属于信息安全的范畴,是一种将待传输信息嵌入到某种载体内,借助载体来掩盖秘密信息传输的技术,与更为常用的加密技术相比,它在信息传输时更为隐僻。JPEG标准是当今应用最为普遍的图片格式,据统计,互联网中80%的图片采用JPEG压缩标准,因此研究图片的密写对于保障信息的安全具有重要意义

1.2研究意义

依据目前信息传递的主要方式,选取图片作为研究对象有重要意义。上到公安、银行系统的身份证照片、银行卡照片、个人肖像照片等涉及到个人隐私信息图像的存档和管理,下到个人生活隐私照片的保护,都存在图片的存储安全问题。
随着网络带宽的提升,个人移动设备的不断普及,人们对于多媒体的消费需求随着生活水平的提高也不断增强,特别是近年来,随着高清数字图像逐渐普及,图像也越来越频繁地通过网络传输和存储,相应需要的存储空间和占用的网络开销随之增大,这带来了两方面的需求。一方面,由于计算机和网络以及各类黑客工具的普及,传输多媒体数据时容易被恶意监听甚至篡改,许多媒体内容有一定的保密性要求,因而图像的安全传输变得越来越重要。此外,随着用户的增多,高清图像将占据更多的网络开销,如何在保护图像隐私的前提下,同时加强图像的压缩以尽可能减少网络带宽需要,对于用户而言也变得更加急切。

1.3主要工作

网页技术介绍

  1. HTML称为超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。它能独立于各种操作系统平台(如UNIX, Windows等)。使用HTML语言,将所需要表达的信息按某种规则写成HTML文件,通过专用的浏览器来识别,并将这些HTML文件“翻译”成可以识别的信息,即现在所见到的网页。
    HTML 5:HTML5是公认的下一代Web语言,极大地提升了Web在富媒体、富内容和富应用等方面的能力,被喻为终将改变移动互联网的重要推手
  2. CSS:层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
    CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。CSS简化了网页的格式代码,外部的样式表还会被浏览器保存在缓存里,加快了下载显示的速度,也减少了需要上传的代码数量(因为重复设置的格式将被只保存一次)。只要修改保存着网站格式的CSs样式表文件就町以改变整个站点的风格特色,在修改页面数量庞大的站点时,显得格外有用。这就避免了一个个网页的修改,大大减少了工作量。
  3. JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
    JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
  4. 是一种解释性脚本语言(代码不进行预编译)
  5. 主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。
  6. 可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
  7. 跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
    Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。

第二章

2.1关于图片隐写术

隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容。隐写术的英文叫做Steganography,来源于特里特米乌斯的一本讲述密码学与隐写术的著作Steganographia,该书书名源于希腊语,意为“隐秘书写”。

2.2LSB算法

维基百科LSB:
最低有效位(英语:Least Significant Bit,lsb)是指一个二进制数字中的第0位(即最低位),权值为2^0,可以用它来检测数的奇偶性。

利用js的hideText函数提取各个像素,例如(255,255,255),转换成二进制例如(1111111,1111111,1111111),修改后一位至两位的话肉眼几乎无法辨别。

把所想隐含的信息转换成二进制ascall码分别填入每个像素的最后一位(可以是最后两位,或者一个像素每一种颜色都填入,在不影响的情况下随意修改)

LSB加密是信息隐藏中最基本的方法。由于人们识别声音或图片的能力有限,因此我们稍微改动信息的某一位是不会影响我们识别声音或图片的。

采用图片的最低有效位(LSB)进行隐写。其原理就是图片的像素点都是由三原色(RGB)构成(如下图),由这三原色可以组成各种颜色,如CSS里的颜色定义#FFFFFF,即是三原色的16进制值写法,每个颜色各占用8bit。而LSB隐写就是修改像素中每个颜色值的最低位值,最后通过这种方式达到隐写的效果


譬如我们想把’A’隐藏进来的话,如下图,就可以把A转成16进制的0x61再转成二进制的01100001,再修改为红色通道的最低位为这些二进制串。

解密的话通过读取最后一位的位值,每八位读取一个acall码或每16位读取一个unicode编码
,只要图片足够的大,解密的文字就越多

第三章 系统设计与实现

3.1 图片的加载

传统的图片加载需要将图片上传到服务器,再由服务器加载出来,而现在可以使用FileReader对象将图像加载到DOM中而无需往返服务器,这样就大大提高了隐私性。

再将我们读取到的数据加载在一个 Image对象中,然后我们将其输入到我们的 canvas画布中以进行像素操作。
canvas包含了我们图像的所有信心

再使用FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL。Data URL是一项特殊的技术,可以将资料(例如图片)内嵌在网页之中,不用放到外部文件。使用Data URL的好处是,您不需要额外再发出一个HTTP 请求到服务器端取得额外的资料。

这样我们就获取了该图片的url,方便后面的下载

3.2获取图片所有信息


通过Context(‘2d’)可以获取图片的所有信息

再将其加载再imgData中传入ImageColorMask的color数组中

3.21信息导入

可以看到这里有个对象的函数,里面传入的参数是图像和文本信息
可知我们最核心的加密方式就是在这个函数里

让我们看一下imagemask.js里的hideText函数

这里有用到新的对象

来看ImageColorMask里的函数

3.3文字编码

3.4图片编码

第四章 系统设计与实现

4.1功能测试

加密文字

首先这是一张很普通的名为me.jpg的

进入index首页

选中图片

在加密文字上框输入文字
我们输入
阜阳师范大学信息工程学院010101



下面就会显示一张图片:

下载下来即可

这样我们就获取了一张download.png图片

这张图片里就含有我们加密的文字了,如果解析的话,只需传入图片解密即可

刷新网页
上传上次下载的图片
解密

解密成功,这就是一个完整的图片加密解密的过程

加密图片

还是选择这张图片

选择另一个网页
上传
之后加密选择一张二维码


点击加密图片后,下方就会有一张图片


还是下载下来
一张download.png图片
下面进行图片的解密

上传刚下载的图片

选择解密图片即可

下面会有一个下载地址,这个地址背后就是我们那张二维码图片


这样一张头像里面就夹藏着另一张图片了

##4.2线上部署
因为码云相比较于github,网络延迟相对好很多,所以选择在码云上进行代码的部署。
选择到相应路径
当然你也可以选择部署在自己的网站上,因为这样部署比较方便而且免费




在码云上新建一个代码仓库
这里就叫test web吧

然后将它的ssh复制下来
使用git remote add origin将它推荐到远端

git push -f origin master,可直接推送


推送成功,在服务上开启git pages即可

这样我们就有了一个静态的网站可以直接加密我们的图片了

http://discipline_exhausted.gitee.io/test-web

第五章 总结及展望

5.1总结

5.2展望

【LSB】图片隐写文档大纲相关推荐

  1. 关于LSB图片隐写的解法

    关于LSB图片隐写的解法 LSB全称为 least significant bit,是最低有效位的意思.Lsb图片隐写是基于lsb算法的一种图片隐写术. 隐写是一种信息隐藏技术,这项技术目标是使对方对 ...

  2. python图片隐写_机窝安全--LSB图片隐写

    人类能说识别大概1000万中颜色,而BMP等的三原色有从0x00~0xFF,也就是有256的3次方,大概是1600多万,也就是说人类大概有600万颜色无法识别,但是机器并不是通过像素识别,而是通过该像 ...

  3. CTF学习之MISC之图片隐写与文档隐写

    CTF学习之MISC之图片隐写 隐写术概述 图片隐写技术 图片EXIF信息隐写 图片LSB低位隐写 隐写术(Stega) 隐写术(Steganography,简写Stega) 一门关于信息隐藏的技巧与 ...

  4. 【安全技术揭秘系列】探索图片隐写的奥秘

    什么是隐写?由于我们识别声音或图片的能力有限,因此稍微改动信息的某字节位的数据是不会影响我们识别声音或图片的.举个最通俗的例子,古人的藏头诗就是隐写的一种方式: 而CTF图片隐写术就是利用图片来隐藏一 ...

  5. python图片隐写_Lsb图片隐写

    前言 在刚刚过去的网鼎杯第一场比赛中,做到了一道杂项题是关于lsb隐写的.LSB全称为 least significant bit,是最低有效位的意思.Lsb图片隐写是基于lsb算法的一种图片隐写术, ...

  6. 解决写文档对于图片边框的强迫症

    1. 写文档的困扰 在写文档进行配图时,很多时候图片是白色背景的,会导致文章中的图片区域附近有大量空白的感觉,强迫症患者很难受. 目前语雀做的是很好的,可以给图片加边框或者阴影,而一些文档博客平台(C ...

  7. 图片隐写之LSB(Least Significant Bit)原理及其代码实现

    1. 什么是隐写? 隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容.隐写术的英文叫做Steganography,来源于特里特米乌 ...

  8. 网络安全培训小白入门课,从buu到红帽的图片隐写

    图片隐写是MISC中的一部分,雨笋教育小编给小白从BUU中找到入门MISC之图片隐写,分享给大家 恢复黑白图片 buuoj 静静听这么好听的歌 由于网上wp只给了代码而且函数非常吓人,因此写了一个新手 ...

  9. CTF练题(5)word隐写基础题,jpg图片隐写,敲击码解密

    2022.11.2    两道misc题目. 题目一    word隐写基础 题目信息如下: 以及一个无法打开的word文档: 解题步骤: (1)将该word文档拖入010Editor中进行分析,发现 ...

最新文章

  1. Nginx配置文件详细说明
  2. ListView用法
  3. 【005】◀▶ C#学习笔记(四)(集合)
  4. 《浪潮之巅》 读后感
  5. Sublime Text 3 import Anaconda 无法正常补全模块名解决办法
  6. 解锁三星bl锁有几种方法_解锁陶瓷砂磨机常见的几种机械密封损坏原因及处理方法发表...
  7. 基于zookeeper实现分布式配置中心(一)
  8. vux页面转换html,vue vux 怎么用 样式变量 修改主题配色
  9. Eclipse调试Java的10个技巧
  10. Python判断文件和文件夹是否存在的方法
  11. 23-Python-RabbitMQ
  12. 【NCD 2019 B】Let me sleep【边双连通分量缩点、树的直径】
  13. word转PDF,导航窗格输出目录
  14. 如何看懂财务报表:(一)如何下载财报
  15. 香港服务器的数据泄露是什么?怎样预防?
  16. ie浏览器html状态栏隐藏,我的IE浏览器忽然上面的菜单栏及地址栏都不见了
  17. Linux 怎么防止 ssh 被暴力破解
  18. 那些好看的渐变色linear-gradient(拿走不谢)
  19. java设计篮球积分程序_java毕业设计_基于java的篮球赛事管理系统
  20. RAW怎么转为JPG?这些转换技巧值得收藏

热门文章

  1. Sequence with Digits CodeForces - 1355A(暴力+数学)
  2. 用java做一个模拟彩票程序_JAVA模拟----- 彩票机子-----抽奖过程的实例化
  3. error: ‘CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD’ was not declared in this scope
  4. ubuntu分解压缩包
  5. Java引用类型——强引用、软引用、弱引用和虚引用
  6. 51 NOD 1227 平均最小公倍数(杜教筛)
  7. cf1523C. Compression and Expansion
  8. [2.7]【CF933A】A Twisty Movement【CF926B】Add Points【CF917A】The Monster【CF919E】Congruence Equation
  9. [USACO19JAN,Platinum] Redistricting
  10. P1446-[HNOI2008]Cards【Burnside引理,dp】