浅析JavaScript图片文字隐写术:什么是隐写术、隐写术与密码学区别、Unicode 中的不可见字符、StegCloak库实现隐写术
这篇文章主要记录及介绍一下前端实现隐写术及相关知识,具体内容不细节展开,因为感觉工作中实用性不强,就是知道有这个东西,可以实现这些东西,以后如果需要使用的话,再细细研究学习,不过真的感觉不错,会玩,哈哈。
主要推荐下面这篇文章:《通过文本与图片的隐写来隐藏信息(非常有意思!)》- https://mp.weixin.qq.com/s/xe2vq4kImWHRbSHV4Y5rUg
一、什么是隐写术
隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容。
如果你是一个在敌对国家的间谍,那么仅向美国发送信息便是犯罪。如果消息是加密的,那可能导致更大的罪名,当你拒绝为当局解密消息时,情况会变得更糟。隐写术,字面意思是“隐藏的文字”,是指隐藏消息的存在。
Python Forensics 的创始人 Chet Hosmer 指出:
隐写术掩盖了信息的存在。不像它的表亲密码学一样容易检测,难以破解,隐写术提供最有趣的特点在于“藏在众目睽睽之下”。(Steganography hides the mere existence of the communication. Unlike its cousin cryptography, which is easy to detect but difficult to break, steganography provides the most interesting element of all ‘To Hide in Plain sight’.)
总结一下就是:密码学让人一看就有问题,隐写术就怎么看都没问题。
参考文章:《如何在字符串中隐藏秘密 —— JavaScript 中的现代文本隐藏》 - https://juejin.cn/post/6856737400396349454
二、Unicode 中的不可见字符
零宽度字符是非打印字符,是 Unicode 表的一部分。顾名思义,他们甚至不展示自己的存在。它们用于使长句换行,连接表情符号,将两个字符连接起来,防止它们结合等。
三、StegCloak 是什么以及如何工作
《StegCloak:如何使用密码在纯文本中安全隐藏不可见的机密字符》 - https://www.freebuf.com/articles/database/240155.html
StegCloak是一款基于纯 JavaScript 开发的隐写功能模块,该工具采用函数式编程风格设计,StegCloak 可以对文本中的机密信息进行压缩和加密,然后再使用特殊的 Unicode 不可见字符来隐藏它。除此之外, 该工具还可以用来安全设置水印字符串,在网页中设置不可见的脚本,或在社交媒体或其他需要涉及隐蔽通信的地方隐藏文本内容。
github 地址:https://github.com/KuroLabs/stegcloak,目前 2.3K star,功能介绍
1、使用密码和HMAC完整性保护您的不可见的机密数据;
2、通过使用AES-256-CTR加密不可见的机密数据来实现加密安全;
3、在Unicode字符中使用了7个不可见的字符,这些字符在网页中无处不在;
4、支持最常见的Tweets、Gmail、Whatsapp、Telegram、Instagram、Facebook等社交媒体或网络应用;
5、减少Payload的最大压缩(LZ,Huffman);
6、完全不可见,使用零宽度字符而不是空格或制表符;
7、速度非常快!可以在不到一秒钟的时间内,通过将隐写术在三个单词隐藏在****页面源(800行,205362个字符)的隐蔽文本中;
8、支持将文件上传到云端并在字符串中创建链接,可以实现在字符串中隐藏文件;
9、纯功能性开发;
10、可将其当作API模块、命令行接口或Web接口来使用;
其他相关文章推荐:
《神秘的JS字符串隐写术》- https://juejin.cn/post/6867319399947681806
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2017-09-26 从项目上一个子查询扩展学习开来:mysql的查询、子查询及连接查询
2017-09-26 在MySQL中使用子查询和标量子查询的基本用法
2017-09-26 HQL语句中数据类型转换,及hibernate中createQuery执行hql报错
2017-09-26 SQL中的cast()函数