小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

限期解除!要跟亂七八糟的口令說拜拜了

 編程教室 2021-09-15

大家好,歡迎來到編程教室~我是Crossin。

這兩天有個事關很多人的新聞:

轉自 澎湃新聞 https://m.thepaper.cn/baijiahao_14480198

為什么說事關很多人?因為以下這兩個場景,想必大家都遇到過:

出現(xiàn)這種情況,原因在于各平臺不想讓自己辛苦獲取的流量白白被別家薅走,所以限制了其他平臺的鏈接。而其他平臺的應對之策,就是弄出火星文一般的口令碼,讓你復制到其App里打開。

如今互聯(lián)網(wǎng)時代,“流量”是要成本的,各家出于商業(yè)層面的考量,在自己的地盤上做限制,倒是可以理解的事情。然而結果就是讓用戶受罪。本來一鍵就能完成操作,硬生生被弄成兩三步+手動切換App才能完成。

而且,這種限制常常也會誤傷。比如我之前有篇文章里做了個網(wǎng)頁小游戲的開發(fā)案例,演示網(wǎng)址就接連被屏蔽。(就是這篇:王校長一分鐘能吃多少熱狗?| 小游戲

所以這個消息出來,絕大部分用戶是拍手叫好的,甚至有人用上了“推倒柏林墻”的說法。但我覺得吧,這事兒也沒那么簡單。

1. 屏蔽網(wǎng)址并不全是針對競爭對手,也有很大一部分是針對不合規(guī)或者高風險的網(wǎng)站。那種假冒紅包、中獎的鏈接,大家或多或少可能也遇到過,尤其中老人對這些鏈接的真假難以判斷。所以解除屏蔽網(wǎng)址肯定不是一刀切,該限制的還是得限制。有的平臺過去對于鏈接一概不跳轉,那之后可能要增加不少工作量了。

2. 作為一個有很多群的群主,我相當厭惡那些是朋友就抽我一下、是兄弟就砍我一刀的推廣鏈接。為了幾毛錢(還不一定能拿到)的優(yōu)惠,把一個群的幾百人都騷擾了,屬實煩人。后面如果解除限制,方便的同時,估計垃圾信息也會跟著多起來。我反正做好準備了,誰發(fā)踢誰!

3. 這次大家的關注點主要都集中在微信身上,有種“天下苦tx久矣”的感覺。但這里我要替微信說句話了:如果微信聊天里不允許跳轉其他平臺,那別的平臺是不是也不應該限制別人在聊天/文章/視頻/直播中留微信號呢?在其他平臺上留微信被刪文封號的事太多了,如果這個不放開,那是不是有點欺負鵝了?

另外我再說個冷知識:最初其實是淘寶主動停止來自微信的跳轉鏈接,也是淘寶主動禁止百度收錄淘寶內容的。

這里面有商業(yè)競爭的因素,但也有出于反詐防釣魚的原因。有興趣的可以搜索了解一下阿里的“杜鵑計劃”。


話說回來,如果今天你被監(jiān)控了,你發(fā)的信息都會被人攔截,然后你也想搞個火星文口令躲過自動識別,有什么辦法?

我來教大家?guī)讉€簡單的實現(xiàn)。

1. URL Encoding

import urllib.parsetext = 'Crossin的編程教室就是棒??!就!是!棒!'secret = urllib.parse.quote(text)print(secret)

輸出結果:

Crossin%E7%9A%84%E7%BC%96%E7%A8%8B%E6%95%99%E5%AE%A4%E5%B0%B1%E6%98%AF%E6%A3%92%E5%95%8A%EF%BC%81%E5%B0%B1%EF%BC%81%E6%98%AF%EF%BC%81%E6%A3%92%EF%BC%81

解碼:

text = urllib.parse.unquote(secret)print(text)

這個是URL編碼,也叫做百分號編碼,可以將中文、符合等非英文字符轉成 百分號+字母+數(shù)字 的形式,在web開發(fā)中經(jīng)常會用到(比如URL地址里的參數(shù))。不過你也發(fā)現(xiàn)了,英文字母是不會動的。

2. Base64

import base64text = 'Crossin的編程教室就是棒?。【?!是!棒!'secret = base64.b64encode(text.encode())print(secret)

輸出結果:

b'Q3Jvc3NpbueahOe8lueoi+aVmeWupOWwseaYr+ajkuWViu+8geWwse+8geaYr++8geajku+8gQ=='

解碼:

text = base64.b64decode(secret)print(text.decode())

Base64 是一種非常經(jīng)典的文本編碼方式,程序員的最愛。在程序員的聚集地 v2ex 上,你會發(fā)現(xiàn)大家留的聯(lián)系方式都是一串亂碼,那些基本都用的是 Base64。

Base64有個特征,就是最后常會用 = 進行補齊(但不是一定會有)。另外,它不能直接對中文進行操作,需要先進行文字編碼,通常是 UTF8 或者 GBK。其實這一步本身就讓肉身無法直接閱讀了,比如上述例子的 UTF8 編碼為:

b'Crossin\xe7\x9a\x84\xe7\xbc\x96\xe7\xa8\x8b\xe6\x95\x99\xe5\xae\xa4\xe5\xb0\xb1\xe6\x98\xaf\xe6\xa3\x92\xe5\x95\x8a\xef\xbc\x81\xe5\xb0\xb1\xef\xbc\x81\xe6\x98\xaf\xef\xbc\x81\xe6\xa3\x92\xef\xbc\x81'

但對于計算程序來說,這段編碼和原文本幾乎是一樣的。

3. 移位加密

這是一種很古老的加密方式,據(jù)說可以追溯到愷撒在戰(zhàn)爭中傳遞密信。原理就是把所有字母都往后移動固定的位數(shù),比如 a->d,b->e, c->f,這樣原本的話就看不懂了。

對于中文,雖然沒有字母這樣的概念,但在計算機里同樣也是有一個對應的數(shù)值,所以用程序去進行位移計算很容易。

text = 'Crossin的編程教室就是棒啊!就!是!棒!'secret = ''key = 5for i in text: secret += chr(ord(i) + key)print(secret)

輸出結果:

Hwtxxns皉縟稐敞宩尶昴棗問&尶&昴&棗&

解碼:

text = ''for i in secret: text += chr(ord(i) - key)print(text)

Python 里,內置函數(shù) ord 是把一個字符轉成對應的數(shù)值,chr 則是發(fā)過來,把數(shù)值轉成對應的字符。

你可以自定義一個 key,用來進行加密解密的計算(記住不要告訴別人

你也可以每次用一個隨機的 key,然后把 key 藏在你的密文中。比如:

N}z~~ty皏縭稖敤宯尼昺棝啕,尼,昺,棝,@11

解密的時候,先提取 key,然后再進行解密。

使用動態(tài)隨機key的代碼不復雜,就留做今天的作業(yè)啦!

    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多