• 注册
  • 程序代码 程序代码 关注:458 内容:17

    用python和坚果云搭建一个密码本

  • 查看作者
  • 打赏作者
  • 当前位置: 博科园 > IT计算机科学 > 程序代码 > 正文
    • 6
    • Lv.2普朗克长度
      3000天纪念
    • 博科园AI人工智能助手 图灵
      [ AI在线 ]
      __
    • 首先我要声明一下,我并不是权威的专家,因为这个密码管理器它无论如何,只要能实现“私密、便捷与记忆”都是值得的,如果你要我问为啥是这样,那正如我一开始所说的那样,我不是这方面的专家。

      用python和坚果云搭建一个密码本

      用python和坚果云搭建一个密码本

      可以看到很多市面上流行的一些密码管理器综合体验是还可以的,很多此类软件不加入联网权限,今天突发奇想,自己搞一个密码管理的。

      大概意思就是这样的:用户(这里指我,当然也可以是你)先选择以下内容:

      1.查看密码

      2.更新内容

      3.退出程

      当用户选择1时,需要输入查看的密码,比如123,密码正确则显示出解密后的内容,比如你的一些社交账号的密码;当用户输入2时,读取原先的加密文件并解密,然后自动补齐在标前面,让用户进行编辑,由于是命令行,可以让用户输入“/end”表示超级结束,可以保存了,对程序来说,无非是再次进行加密并覆盖原先的文件;当用户选择3时,结束程序。

      上述这些功能显然是需要无限循环的,当用户选择3时才跳出循环。

      如果用户保存密码文件后,则需要在本地和云端各留存一份,本地和云端都只覆盖而不追加。这里用坚果云作为网盘来储存。

      前期准备:

      termux最新版

      MT管理器最新版

      一个坚果云账号

      坚果云里面创建有第三方应用密码

      流畅的网络

      充足的内存

      基础的python编程基础

      基础的Linux命令基础

       

      1.下载最新的termux安卓版并安装打开。这是一款当前最为完善的移动Linux环境

      Termux的官方网站网址为https://termux.com/

      2.安装MT管理器。这是一款安卓强大的逆向文件管理,安装打开备用。可以在酷安或者百度下载。

      3.下载坚果云安卓版,或者进入电脑网页端,登录后在设置里找到第三方应用,创建一个应用,之后复制账号、用户名和应用密码。为了便于学习,请在坚果云创建一个文件夹名为ABC,这将是之后要备份文件的文件夹,所有上传的都可以存到这个目录。

      4.链接网络,打开termux,双指放大界面直合适的字体大小,输入以下命令让termux获取储存权限。

      termux-setup-storage

      直接复制,不允许擅自大小写。在弹出的窗口中允许termux获取储存权限即可。此时你的termux才有资格操作手机的文件夹。

      接下来换源,输入下列命令:

      termux-change-repo

      用python和坚果云搭建一个密码本

      出现窗口之后全选(俺键盘的空格表示选中,按方向箭头表示移动),之后来到这个界面:

      用python和坚果云搭建一个密码本

      选择有BFSU的那个,点击空格后回车,将更新源。

      用python和坚果云搭建一个密码本

      这个界面出来后就成功了。

      接下来安装python

      换源后输入下面的命令

      pkg install python

      就会下载python环境,记住,当中途下载暂停让你选择的时候,上面写着默认选啥,你就写啥,比如默认“deauft=Y”你就写Y,默认N你就敲N,不要搞错,否则之后python的一些库无法安装。

      用python和坚果云搭建一个密码本

      出现这个就意味着成功安装python了。

      以后要进入python编译界面,直接输入下面命令:

      python

      用python和坚果云搭建一个密码本

      即可开始编写python代码。不过通常命令行的方式编写大量的代码不合适,因为如果一旦语法错误或者编写问题,就得从头开始。所以我们通过nano编写保存一个.py文件后再运行。

      nano是一个termux自带的编辑器,类似于vim编辑器。但是这个比较适合快捷操作。语法如下:

      nano 文件名

      这里我们新建一个叫6.py的python文件,就这样搞:

      nano 6.py

      用python和坚果云搭建一个密码本

      回车,进入编辑界面。

      用python和坚果云搭建一个密码本

      编写一个python程序,比如

      用python和坚果云搭建一个密码本

      编写完成后按下Ctrl后,再用键盘输入O,即可保存。然后问你保存的文件名

      用python和坚果云搭建一个密码本

      这里看不到光标,可以直接编辑,这里就不改了就叫6.py吧

      按ctrl后输入X表示退出。

      用python和坚果云搭建一个密码本

      然后就退出nano编辑器了。

      如何运行这个6.py呢?

      语法如下:

      python 6.py

      用python和坚果云搭建一个密码本

      回车即可运行6.py

      用python和坚果云搭建一个密码本

      这就是一个简单的编写python后运行的过程。之后都建议用这种方式。

      3.接下来要下载专用的python相关库,输入如下命令安装request库:

      pip install requests

      等待安装完成。

      接下来就将你要加密的文件用mt管理器写上。

      打开mt管理器,点击主页下方中间的 后输入文件名,比如a.txt,然后点击“文件”,即可创建文件a.txt,点击a.txt后进入编辑,比如写上我的QQ号“2681338371”后点击右上保存按钮即可退出。

      记住这个a.txt的文件路径,如果正常的话,软件上方的路径加上a.txt就是本文件的路径(相对路径)

      接下来,要对a.txt进行加密。因为里面保存了你的隐私和一些密码,所以要加密。这里我们用二次转码的方式进行简单加密,你也可以用其他方法加密。

      通过python用base64将a.txt转为base64编码,然后再将这个编码再次进行base64编码,最后覆盖a.txt,这是你的a.txt就是一串编码了,足够防止人偷窥了。

      代码思路如下:

      import base64

      # 读取a.txt中的内容并进行base64加密

      with open(‘a.txt’, ‘r’) as f:

          data = f.read().encode(‘utf-8’)

          encoded_data = base64.b64encode(data)

          encoded_data = base64.b64encode(encoded_data)

      # 覆盖写入到a.txt中

      with open(‘a.txt’, ‘w’) as f:

          f.write(encoded_data.decode(‘utf-8’))

      运行后a.txt就是一串密文。

      解密也是一样的,只是倒过来了,先读取a.txt的密文,然后解码,之后再解码。

      思路如下:

      import base64

      # 读取a.txt中的内容并进行base64解密

      with open(‘a.txt’, ‘r’) as f:

          encoded_data = f.read().encode(‘utf-8’)

          decoded_data = base64.b64decode(encoded_data)

          decoded_data = base64.b64decode(decoded_data)

      # 覆盖写入解密后的内容到a.txt中

      with open(‘a.txt’, ‘wb’) as f:

          f.write(decoded_data)

       

      这个代码是将解密后的内容覆盖掉a.txt,通常我们只是查看密码的话用不着再覆盖,直接打印出来即可。如果要上传到坚果云的话,就可以写入一个新的txt文件里然后将这个文件上传,然后在把这个文件删除。

      接下来用python将名为a.txt的密文上传到坚果云。

      去坚果云复制你的账号密码和应用密码。

      用python和坚果云搭建一个密码本

      用python和坚果云搭建一个密码本

      用python和坚果云搭建一个密码本

      如果没有应用密码,需要点击“添加应用密码”新建一个应用。

      记得现在坚果云主页创建一个文件夹,自己创建,假设我这里新建了一个叫A的文件夹,那么对于坚果云来说,你的这个文件夹的路径是:

      https://dav.jianguoyun.com/dav/A

      接下来就是用python将你的a.txt上传到这个叫A的目录下。

      那你要上传a.txt,这时路径就是这样的:

      https://dav.jianguoyun.com/dav/A/a.txt

       

      #上传坚果云

      import os

      import requests

      from requests.auth import HTTPBasicAuth

      dav_url = “https://dav.jianguoyun.com/dav/A”

      #上传的服务器路径

      local_file_path = “/storage/emulated/0/a.txt”

      #需要上传的文件

      auth=HTTPBasicAuth(“2681338371@qq.com”, “ab23tncus26q9dxq”)

      #账号密码

      with open(local_file_path, “rb”) as f:

          file_content = f.read()

      headers = {“Content-Type”: “text/plain”}

      with requests.Session() as session:

          session.auth = auth

          response = session.put(dav_url, data=file_content, headers=headers)

          print(response.status_code)

          #打印返回响应码,201表示成功

          print (“上传失败”) if response.status_code==”201″ else print (“上传成功!”)

      用python和坚果云搭建一个密码本

      运行。

      用python和坚果云搭建一个密码本

      记得a.txt文件的路径不要搞错。如果返回201表示上传成功。

      用python和坚果云搭建一个密码本

      在坚果云相应路径就会有你上床的内容。

      如何从坚果云下载?

      代码示例如下:

      #下载坚果云

      import requests

      from requests.auth import HTTPBasicAuth

      dav_url = “https://dav.jianguoyun.com/dav/A/a.txt”

      #下载的路径

      local_file_path = “/storage/emulated/0/a.txt”

      #保存的路径

      auth=HTTPBasicAuth(“2681338371@qq.com”, “ab23tncus26q9dxq”)

      #账号密码

      with requests.Session() as session:

          session.auth = auth

          response = session.get(dav_url)

          with open(local_file_path, “wb”) as f:

              f.write(response.content)

          print(“下载成功!”)

      运行后等结果就行,下载成功就会保存在你设置的目录下。

      用python和坚果云搭建一个密码本

      以上就是用来搭建密码本的基本思路,可以自行完善这个系统,比如增加输入密码才能查看….

      下期讲一讲如何用termux配合python和api搭建一个chatGPT

    • 生成海报
    • Lv.3弦理论长度
      普朗克
      点个赞
      回复
      Lv.35火星
      博科园VIP6
      9周年🎂
      支持一下 [s-3]
      回复
      Lv.44猫眼星云
      飞越太阳系
      私密、便捷与记忆
      回复
      Lv.1量子泡沫
      愿你高兴不被氧化,快乐不被还原;苦恼可以取代,郁闷可以水解;处事能够中和,好运不断加聚;拥有幸福不再可逆!当氢在电火花的吸引下,与氧洒下晶莹的泪滴,当钾投入水的怀抱,化成缕缕淡紫的清烟,当氯化氢拜倒在硝酸银面...
      回复
      Lv.30恐龙
      博科园VIP6
      门捷列夫
      厉害厉害
      回复
      Lv.28蜂鸟
      博科园VIP6
      林奈
      好厉害
      回复

      请登录之后再进行评论

      登录

      赞助商

    • 相互支持,合作共赢 Win-Win Cooperation

      邀请好友加入【博科园】有奖励啦♪

    • 任务
    • 偏好设置(换皮肤)
    • ★基于全球领先的AI4.0大语言模型 知识问答 内容创作 AI绘画 代码编程 生活办公 对话聊天 样样精通 超强大的AI助手★
      博科园AI
      有疑惑?万能AI为你解答
    • 到底部
    • 帖子间隔 侧栏位置:
      关闭窗口
      下载海报