Python教程

用Python做一个自律神器(从未有过的神奇思路)(一)

本文主要是介绍用Python做一个自律神器(从未有过的神奇思路)(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

  • 前言
  • 思路
    • 简介
    • 密码——挡住他人,也可以约束自己
      • 密码是自己设置的,怎么约束自己?
      • 密码如何给计算机控制?
  • 实现
    • 基本功能实现
    • 进阶功能实现
      • 防止抓包篡改网络时间
      • 防止时区篡改
  • 未完待续

前言

自律是什么?自己控制自己。这是一件很难的事情,很多时候,你并不受你自己的意识管控,明明要写作业,非要拿起了手机,明明发誓不玩电脑,却还是打开了Steam…那么我们不妨换个思路,让计算机来帮助你自律。

思路

简介

这个思路其实非常简单,但是非常有效。把自律交给计算机/手机的实例已经有很多,比如手机上的锁机软件,甚至某宝卖的自律神器,能把手机装进密封盒里,到时间后才能打开。但是今天我们要介绍的思路更加普遍适用。

一般的自律神器都有它的局限性,比如手机锁机软件总有这样或者那样的方法破解,密封盒也只能放进手机,对于其他东西也没有作用。既然如此,我们就从底层出发来减少这个局限性。

密码——挡住他人,也可以约束自己

密码是自己设置的,怎么约束自己?

密码是一个非常底层的东西,手机有密码,电脑有密码,文件可以加密。但是这个密码在日常生活中是我们管控的,目的是不让他人侵犯我们的隐私,现在我们不妨用它来约束我们自己。

这就要解决一个问题:密码是自己设置的,怎么约束自己?

问得好,既然密码由自己控制,那就不能控制自己,除非你有失忆术,设完密码的一瞬间忘记它,这也有个问题——那不是永远也打不开它了?所以,我们不能让自己控制密码,而是计算机。

密码如何给计算机控制?

计算机上的任何软件都没有自动生成密码并控制它的功能——毕竟这不是密码诞生的目的。而自动设置密码这个过程不禁让人联想到AI控制人类等一系列离谱的东西,从这里我们可以理解到:密码并不能由计算机设置,只能由我们自己设置。

这就是这个思路最核心的地方所在了:设置并不等于控制,平时我们设置密码,最重要的一点是什么?没错,记住它。这是传统使用密码的前提,设置并记住才等于控制。如果我们不让自己控制密码,那就要让密码由计算机记住,而我们不能记住它。

什么样的东西计算机能记住,而我们短时间内记不住它呢?

看看这些东西吧:LlwYZ39LYZ cy1FkVRBS8 ml6AgIqt9 ZeBDpjXrIM Jmls2I7pDT

只要你没有意识去记忆它,基本是不可能短时间记下来的。如果你说:我这最强大脑没办法啊,我看一眼就记住了啊,我都没想记住它。

那你能看一眼记住这个吗(doge)LJea5ezwTm8v7fs0lKj1bEnYdMstRKLA1KGpBAW4pSR1HA9yv2RP3Cl9Og9tKux9GJVJ8t8px0HfmGMOE1nvztaSJicqNyd7t5ONxKUlPGWJgBqOWU5bRi63ex7JMwix

而生成一串随机字符串可能是对于计算机来说最简单的事情之一了。只要我们让计算机生成一串复杂字符串,由我们复制粘贴去设置它(我们记不住它),然后计算机封存它,加以各种限制:比如最常见的时间限制。在你设置的截止时间之前,计算机不会告诉你这个密码,当时间一到,计算机就会自动把它呈现给你,这时你就可以访问这个加密的东西了。

我们还可以遐想一下(当然这我现在做不到,可能有人能做到),计算机可以给出其他限制,比如让你刷题,刷完相应的题目后计算机才会把这个密码呈现给你,作为一种奖励机制。这都是基于这个思路的延伸应用,大有可为了属于是。

实现

我们可以用各种方式实现它,毕竟这是个思路。你甚至可以让别人而不是计算机控制这个密码,这是最简单的——你不用学任何编程,只需要一个理解你的好朋友或者好家长。当然,计算机的实现是更灵活自主的。

这篇文章不是实现的主题,如果后续时间允许,我会把它开源供大家使用。现在我只是先说一下python做这个的大致思路,其实非常简单,初学者也可以解决。

基本功能实现

有这么几个功能是必须要实现的:

  1. 随机字符串生成
  2. 封存密码
  3. 校验时间到了没有
  • 字符串生成网上一抓一大把,用ramdon函数就可以实现
  • 由于python是解释语言,代码是开源的,要封存不太方便,但总是有办法——用exe打包py文件,做一个exe文件出来,这样就看不到正在封存的密码了,这个也好说,用pyinstaller就可以实现。
  • 时间这个东西其实要注意:本地时间是可以随意篡改的,所以我们要获取网络时间,防止更改时间以越过时间校验,网上找一个简单的在线时间api接口也很方便。

当然,看似做完了,我们依旧有很多方法破解它,我们要一一击破这些方法。

进阶功能实现

防止抓包篡改网络时间

网络时间从网上爬下来,只要用fidder抓一个包,篡改一下返回数据就能破解。这个也很好解决。我的思路是:时间差校验。

本地获取一次本地时间,网络获取一次网络时间,sleep两秒再分别获取一次,就算出了本地的时间差和网络的时间差。如果没有经过抓包,这两个值应该相等或者只差个一秒左右,如果经过了抓包篡改,这两个值就会差得很多。

防止时区篡改

很多网络时间api是识别本地时区的,本地更改时区会导致网络获取的时间变化。所以只需要用time模块获取一下本地时区,看看是不是正常的时区就可以了。

未完待续

这篇文章只是介绍实现方法,如果后续时间允许且有人需要的话,我会做好成品并开源供大家使用。

这篇关于用Python做一个自律神器(从未有过的神奇思路)(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!