自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

顯隱術(shù):如何閱讀由零寬字符寫(xiě)的信息?

安全 應(yīng)用安全
今天,我們來(lái)說(shuō)說(shuō),拿到一段通過(guò)零寬字符隱藏了信息的字符串,我們?cè)趺撮喿x被隱藏的信息。

 [[380651]]

今天,我們來(lái)說(shuō)說(shuō),拿到一段通過(guò)零寬字符隱藏了信息的字符串,我們?cè)趺撮喿x被隱藏的信息。

例如下面這個(gè)字符串:

一日一技是一個(gè)每天更新的欄目,希望做到在每天幾分鐘讓你獲得提高。

人眼能夠正確閱讀,但如果我們把它粘貼到 Jupyter里面,大家就能發(fā)現(xiàn)零寬字符的蹤跡,如下圖所示:

在上一篇文章中,我們提到可以使用零寬字符8204代替1,8205代替0,那么,現(xiàn)在我們只需要使用字符串的.replace()方法,就能反向替換回來(lái),如下圖所示:

有了這些二進(jìn)制數(shù)以后,我們就能把他們先轉(zhuǎn)成十進(jìn)制數(shù),然后再轉(zhuǎn)成漢字,如下圖所示:

現(xiàn)在,我們想把這個(gè)過(guò)程自動(dòng)化。實(shí)現(xiàn)一段代碼,依次遍歷字符串中的每一個(gè)字符,發(fā)現(xiàn)連續(xù)由8204和8205構(gòu)成的字符串,就把它存起來(lái),直到遇到一個(gè)普通字符。拿到每一串由零寬字符構(gòu)成的字符串以后,把它們分別先替換成字符串形式的二進(jìn)制數(shù),然后使用int函數(shù)轉(zhuǎn)成十進(jìn)制數(shù),再使用chr函數(shù)轉(zhuǎn)成普通的字符。

這個(gè)邏輯的代碼實(shí)現(xiàn)如下圖所示:

  1. sentence = ' 一‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌日‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌一‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍技‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌是‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌一‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌個(gè)‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍每‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌天‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌更‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌新‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍的‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌欄‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌目‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌,‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍希‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌望‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌做‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌到‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍在‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌每‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌天‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌幾‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍分‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌鐘‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌讓‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌你‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍獲‌‍‌‍‍‌‌‍‌‍‌‍‌‌‌得‌‌‍‍‍‌‍‍‍‍‌‍‍‍‌提‌‌‍‍‌‌‍‍‍‌‍‌‌‌‌高‌‍‍‌‍‌‌‌‍‌‍‌‍‍‌‍。' 
  2. char_1 = chr(8204) 
  3. char_0 = chr(8205) 
  4. hide_word_start = False 
  5. hide_word = '' 
  6. hide_word_list = [] 
  7. for char in sentence: 
  8.     if char not in [char_1, char_0]: 
  9.         if not hide_word_start: 
  10.             continue 
  11.         else
  12.             hide_word_list.append(hide_word) 
  13.             hide_word = '' 
  14.             hide_word_start = False 
  15.     else
  16.         hide_word += char 
  17.         if not hide_word_start: 
  18.             hide_word_start = True 
  19.  
  20. code_book = {} 
  21. for word in hide_word_list: 
  22.     if word in code_book: 
  23.         continue 
  24.     word_in_1_0 = word.replace(chr(8204), '1').replace(chr(8205), '0'
  25.     real_word = chr(int(word_in_1_0, 2)) 
  26.     code_book[word] = real_word 
  27.  
  28. for hide_word, real_word in code_book.items(): 
  29.     sentence = sentence.replace(hide_word, real_word) 
  30. print(sentence) 

運(yùn)行效果如下圖所示:

本文轉(zhuǎn)載自微信公眾號(hào)「未聞Code」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系未聞Code公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 未聞Code
相關(guān)推薦

2018-05-18 14:40:34

2021-01-27 21:53:50

版權(quán)保護(hù)隱寫(xiě)

2020-09-23 17:16:52

Python技術(shù)工具

2024-09-12 09:15:43

2024-04-16 11:49:08

2019-07-01 13:06:45

隱寫(xiě)術(shù)網(wǎng)絡(luò)安全威脅

2019-04-08 10:26:20

2018-04-09 03:43:41

零寬字符秘密字符數(shù)據(jù)泄露

2020-10-28 10:46:52

Purple Fox攻

2018-08-10 09:52:00

2024-04-25 14:52:34

2016-12-20 08:40:00

印刷術(shù)信息安全

2021-05-25 11:40:27

網(wǎng)絡(luò)安全隱寫(xiě)互聯(lián)網(wǎng)

2012-06-20 15:42:51

華碩一體機(jī)

2012-11-27 09:54:57

簡(jiǎn)歷創(chuàng)業(yè)項(xiàng)目

2012-03-28 11:26:33

戴爾臺(tái)式機(jī)

2013-12-04 09:31:10

2022-02-23 21:24:21

索引SQL字符

2018-11-16 16:35:19

Java源碼編程語(yǔ)言

2011-07-28 10:32:06

廣聯(lián)達(dá)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)