日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

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

 編程教室 2021-09-15

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

這兩天有個(gè)事關(guān)很多人的新聞:

轉(zhuǎn)自 澎湃新聞 https://m.thepaper.cn/baijiahao_14480198

為什么說事關(guān)很多人?因?yàn)橐韵逻@兩個(gè)場景,想必大家都遇到過:

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

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

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

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

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

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

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

另外我再說個(gè)冷知識:最初其實(shí)是淘寶主動(dòng)停止來自微信的跳轉(zhuǎn)鏈接,也是淘寶主動(dòng)禁止百度收錄淘寶內(nèi)容的。

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


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

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

1. URL Encoding

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

輸出結(jié)果:

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)

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

2. Base64

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

輸出結(jié)果:

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

解碼:

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

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

Base64有個(gè)特征,就是最后常會(huì)用 = 進(jìn)行補(bǔ)齊(但不是一定會(huì)有)。另外,它不能直接對中文進(jìn)行操作,需要先進(jìn)行文字編碼,通常是 UTF8 或者 GBK。其實(shí)這一步本身就讓肉身無法直接閱讀了,比如上述例子的 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'

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

3. 移位加密

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

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

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

輸出結(jié)果:

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

解碼:

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

Python 里,內(nèi)置函數(shù) ord 是把一個(gè)字符轉(zhuǎn)成對應(yīng)的數(shù)值,chr 則是發(fā)過來,把數(shù)值轉(zhuǎn)成對應(yīng)的字符。

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

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

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

解密的時(shí)候,先提取 key,然后再進(jìn)行解密。

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

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多