日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hbuilder怎么没法插入字符了_一个你所不知道的加密方式--零宽字符加密

發布時間:2024/9/19 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hbuilder怎么没法插入字符了_一个你所不知道的加密方式--零宽字符加密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開門見山

什么是0寬字符?

顧名思義,就是字節寬度為0的特殊字符。

比如:

你???????????????好

看起來是一句簡單的打招呼,實際上還有隱含信息。

我們把它復制到這里

Zero Width Lib


如下圖所示:


我們可以看到,這句話還有隱藏的加密內容。

使用方法如下:

一探究竟

相信你們跟我一樣,想知道它究竟是怎么一回事。

先看看下面這個靶場,和上面一樣,這里面有隱藏內容,也就是0寬字符
靶場
打開F12看看


有一長串的字符編碼,這就是0寬字符

它為什么不會顯示在頁面上呢?
首先,我們要知道這里面的‍是什么?

它叫零寬連字,全稱是Zero Width Joiner,簡稱:ZWJ,是一個不打印字符,放在某些需要復雜排版語言(如阿拉伯語、印地語)的兩個字符之間,使得這兩個本不會發生連字的字符產生了連字效果。零寬連字符的Unicode碼位是U+200D (HTML: ‍ ‍)。

怎么實現的?
首先,輸入需要被加密的內容將被轉換為其二進制形式,然后該二進制將被轉換為一系列表示每個二進制數字的零寬度字符。然后可以將零寬度的字符串不可見地插入正常文本中。如果將文本粘貼在其他地方,則可以提取零寬度的字符串,然后反向進行操作以找出被加密的內容!

具體加密過程
1.將需加密的內容轉換為二進制
只是將每個字符轉換為其等效的二進制

const zeroPad = num => ‘00000000’.slice(String(num).length) + num; const textToBinary = username => (username.split('').map(char =>zeroPad(char.charCodeAt(0).toString(2))).join(' ') );

2.將二進制轉換為0寬字符
它將遍歷二進制字符串,并將每個1轉換為0寬度空間,將每個0轉換為零寬非連接符。轉換字母后,我們將插入0寬連接符,然后再下一個。

const binaryToZeroWidth = binary => (binary.split('').map((binaryNum) => {const num = parseInt(binaryNum, 10);if (num === 1) {return '?'; // zero-width space} else if (num === 0) {return '?'; // zero-width non-joiner}return '?'; // zero-width joiner}).join('') // zero-width no-break space );

3.插入正常文本中

需要注意的是加密與解密所使用的字典必須一致,也就是說,在哪兒進行加密的,就要在哪兒解密。

解密過程就是加密過程的反邏輯

有啥作用

很明顯,可以用于文本加密、文章水印等。

總結

以上是生活随笔為你收集整理的hbuilder怎么没法插入字符了_一个你所不知道的加密方式--零宽字符加密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。