限期解除!要跟乱七八糟的口令说拜拜了

大家好,欢迎来到编程教室~我是Crossin。

这两天有个事关很多人的新闻:

转自 澎湃新闻 https://m.thepaper.cn/baijiahao_14480198

为什么说事关很多人?因为以下这两个场景,想必大家都遇到过:

出现这种情况,原因在于各平台不想让自己辛苦获取的流量白白被别家薅走,所以限制了其他平台的链接。而其他平台的应对之策,就是弄出火星文一般的口令码,让你复制到其App里打开。

如今互联网时代,“流量”是要成本的,各家出于商业层面的考量,在自己的地盘上做限制,倒是可以理解的事情。然而结果就是让用户受罪。本来一键就能完成操作,硬生生被弄成两三步+手动切换App才能完成。

而且,这种限制常常也会误伤。比如我之前有篇文章里做了个网页小游戏的开发案例,演示网址就接连被屏蔽。(就是这篇:王校长一分钟能吃多少热狗?| 小游戏

所以这个消息出来,绝大部分用户是拍手叫好的,甚至有人用上了“推倒柏林墙”的说法。但我觉得吧,这事儿也没那么简单。

1. 屏蔽网址并不全是针对竞争对手,也有很大一部分是针对不合规或者高风险的网站。那种假冒红包、中奖的链接,大家或多或少可能也遇到过,尤其中老人对这些链接的真假难以判断。所以解除屏蔽网址肯定不是一刀切,该限制的还是得限制。有的平台过去对于链接一概不跳转,那之后可能要增加不少工作量了。

2. 作为一个有很多群的群主,我相当厌恶那些是朋友就抽我一下、是兄弟就砍我一刀的推广链接。为了几毛钱(还不一定能拿到)的优惠,把一个群的几百人都骚扰了,属实烦人。后面如果解除限制,方便的同时,估计垃圾信息也会跟着多起来。我反正做好准备了,谁发踢谁!

3. 这次大家的关注点主要都集中在微信身上,有种“天下苦tx久矣”的感觉。但这里我要替微信说句话了:如果微信聊天里不允许跳转其他平台,那别的平台是不是也不应该限制别人在聊天/文章/视频/直播中留微信号呢?在其他平台上留微信被删文封号的事太多了,如果这个不放开,那是不是有点欺负人鹅了?

另外我再说个冷知识:最初其实是淘宝主动停止来自微信的跳转链接,也是淘宝主动禁止百度收录淘宝内容的。

这里面有商业竞争的因素,但也有出于反诈防钓鱼的原因。有兴趣的可以搜索了解一下阿里的“杜鹃计划”。


话说回来,如果今天你被监控了,你发的信息都会被人拦截,然后你也想搞个火星文口令躲过自动识别,有什么办法?

我来教大家几个简单的实现。

1. URL Encoding

import urllib.parse
text = '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编码,也叫做百分号编码,可以将中文、符合等非英文字符转成 百分号+字母+数字 的形式,在web开发中经常会用到(比如URL地址里的参数)。不过你也发现了,英文字母是不会动的。

2. Base64

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

输出结果:

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

解码:

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

Base64 是一种非常经典的文本编码方式,程序员的最爱。在程序员的聚集地 v2ex 上,你会发现大家留的联系方式都是一串乱码,那些基本都用的是 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. 移位加密

这是一种很古老的加密方式,据说可以追溯到恺撒在战争中传递密信。原理就是把所有字母都往后移动固定的位数,比如 a->d,b->e, c->f,这样原本的话就看不懂了。

对于中文,虽然没有字母这样的概念,但在计算机里同样也是有一个对应的数值,所以用程序去进行位移计算很容易。

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

输出结果:

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

解码:

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

Python 里,内置函数 ord 是把一个字符转成对应的数值,chr 则是发过来,把数值转成对应的字符。

你可以自定义一个 key,用来进行加密解密的计算(记住不要告诉别人

你也可以每次用一个随机的 key,然后把 key 藏在你的密文中。比如:

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

解密的时候,先提取 key,然后再进行解密。

使用动态随机key的代码不复杂,就留做今天的作业啦!

如果文章对你有帮助,欢迎转发/点赞/收藏~你们的支持是我更新的动力。


_往期文章推荐_

Python3里不存在编码问题?


如需了解付费精品课程教学答疑服务

请在Crossin的编程教室内回复: 666

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Crossin的编程教室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值