前言:
最近写了个有关于零宽字符隐写的misc,在此简单记录一下!
什么是零宽字符:
零宽度空格符 (zero-width space) U+200B : 用于较长单词的换行分隔
零宽度非断空格符 (zero width no-break space) U+FEFF : 用于阻止特定位置的换行分隔
零宽度连字符 (zero-width joiner) U+200D : 用于阿拉伯文与印度语系等文字中,使不会发生连字的字符间产生连字效果
零宽度断字符 (zero-width non-joiner) U+200C : 用于阿拉伯文,德文,印度语系等文字中,阻止会发生连字的字符间的连字效果
左至右符 (left-to-right mark) U+200E : 用于在混合文字方向的多种语言文本中(例:混合左至右书写的英语与右至左书写的希伯来语),规定排版文字书写方向为左至右
右至左符 (right-to-left mark) U+200F : 用于在混合文字方向的多种语言文本中,规定排版文字书写方向为右至左
零宽度字符是一种字节宽度为0的不可打印的Unicode字符, 在浏览器和一般的文本编辑器中是不可见, 但是真是存在, 获取字符串长度时也会占位置, 表示某一种控制功能的字符。
零宽字符有什么用处:
- 数据防爬
将零宽度字符插入关键词文本中,使得匹配关键字时不能正确匹配,但是不影响用户的正常阅读 - 信息隐藏(可做水印)
怎么判断是零宽字符隐写:
- 在kali中(简单,最可取
vim
- 记事本中
光标在第二个字母后,却显示第134列
解密方式:
用网上的在线解密网站,注意解密网站还可根据零宽度字符的不同选择
<200f>也就是U+202F,有些站解出来结果不太对或者解不出来是因为没有这个零宽字符,要选择有这个零宽字符的解密网站
如:Zeroi-Width-Steg-Online