RGB图像上的密文--违规数据隐藏

前段时间想发公司的内推广告,被CSDN审核不通过。于是我就想,怎么能把我想要的数据隐藏到一张图片里。数据的格式字符串是我们日常最常用的数据形式,这里先看下一个字符串的数据是怎么保存的。比如这个字符串:"I'm something,but nothing."Char Print of String:I'm something,but nothing.I ' m s o m e t h i n g , b u t n o t h i n g .Byte Print of Stri
摘要由CSDN通过智能技术生成

前话

Git的操作告一段落, 想了想Azure就是一个云服务, 没必要单独给MS作宣传, 况且我们公司也是用的Bitbucket。

这一篇文章要讲一个和数据结构相关的东西: 在RGB图像上进行数据隐藏.

过去我知道的一种隐藏方式是把真实数据放在文件的结尾后面, 比如:

这种图片是可以正常打开的, 因为头部一般保存了数据长度, 我们写的内容在正常数据以外, 不会影响图片原始数据的读取. 印象中这是当年的一种保存18🈲小电影的方式.

我下面要介绍的是另一种方式, 在不更改图片的文件信息的前提下, 通过细微的调整图片的像素值来实现隐藏秘密数据的目的.

准备

不管是什么数据, 在电脑系统上都是以二进制的形式来保存. 所以这里先通过字符串了解下数据在计算机上的保存格式.

字符串是我们日常最常用的数据形式,先看下一个字符串的数据是怎么保存的。

比如这个字符串:"I'm something,but nothing."

Char Print of String:I'm something,but nothing.
I ' m   s o m e t h i n g , b u t   n o t h i n g .

Byte Print of String:I'm something,but nothing.
0x49 0x27 0x6D 0x20 0x73 0x6F 0x6D 0x65 0x74 0x68 0x69 0x6E 0x67 0x2C 0x62 0x75 0x74 0x20 0x6E 0x6F 0x74 0x68 0x69 0x6E 0x67 0x2E

Bits Print of String:I'm something,but nothing.
01001001 00100111 01101101 00100000 01110011 01101111 01101101 01100101 01110100 01101000 01101001 01101110 01100111 00101100 01100010 01110101 01110100 00100000 01101110 01101111 01110100 01101000 01101001 01101110 01100111 00101110

第一个是按照每个字符来打印,字符串就是一个字符数组,以‘\0’表示结束。上面这个字符串的长度是26,表示有26个连续的char分别表示每个字符,在第27的位置上是一个'\0'表示字符串的结尾。

第二个是按照字节来打印,也就是以uint

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值