首页 > 编程语言 >如何借助python第三方库存取不同应用程序的用户名、密码

如何借助python第三方库存取不同应用程序的用户名、密码

时间:2023-10-27 15:25:52浏览次数:57  
标签:username 用户名 get python keyring 应用程序 密码 -- password

  在之前的一系列文章中,小爬分享了很多用Pywin32、uiAutomation、sap Gui Script等技术实现应用程序或者Web网站(如SAP、Excel、outLook邮件系统、OA系统)的自动化操作的文章。但是,这些文章都绕开了一个知识点:如何优雅地实现自动登录。与其说是想聊聊如何实现自动登录,其实是绕到了另一个技术问题:如何安全可靠的存储、更新和读取用户名、密码?

  都2023年了,即使是给自己用的python脚本,小爬也绝不建议直接在脚本中写下明文的密码,亦或是在某个ini配置文件中直接写密码,这样密码泄露的风险非常高。如果咱们开发的脚本是准备封装为exe文件给他人使用,更是应该做好这些用户名、密码信息的安全存储,不然谁敢用你提供的工具。

  不卖关子,如果您刚好喜欢用python编程,这里推荐使用python第三方包,keyring(keyring · PyPI),非常方便。

  Python keyring库使我们轻松访问系统的keyring服务,它可以用于任何 需要安全密码存储的应用程序。在windows系统中,keyring支持的后端服务:Windows Credential Locker

Keyring简单上手

keyring最基础的用法很简单,只需要用到 keyring.set_password 以及keyring.get_password 方法:

>>> import keyring
>>> keyring.set_password("system", "username", "password")
>>> keyring.get_password("system", "username")
'password'

命令行用法

当我们通过pip install keyring安装完之后,我们便可以在命令行(CMD、Powershell)下轻松设置、获取以及删除密码。

PS C:\Users\Admin> keyring -h
usage: keyring [-h] [-p KEYRING_PATH] [-b KEYRING_BACKEND] [--list-backends] [--disable]
               [--print-completion {bash,zsh,tcsh}]
               [{get,set,del,diagnose}] [service] [username]

positional arguments:
  {get,set,del,diagnose}
  service
  username

optional arguments:
  -h, --help            show this help message and exit
  -p KEYRING_PATH, --keyring-path KEYRING_PATH
                        Path to the keyring backend
  -b KEYRING_BACKEND, --keyring-backend KEYRING_BACKEND
                        Name of the keyring backend
  --list-backends       List keyring backends and exit
  --disable             Disable keyring and exit
  --print-completion {bash,zsh,tcsh}
                        print shell completion script

 

  知道这些之后,假如我们想存储比如OA的用户名 NewJune、密码mypsd,在命令行中的效果是这样:

PS C:\Users\admin> keyring set oa newjune
Password for 'newjune' in 'oa':
PS C:\Users\adminn> keyring get oa newjune
mypsw

API

keyring库给我们提供了这些API来调用:

  • get_keyring(): Return the currently-loaded keyring implementation.返回当前载入的keyring实现。

  • get_password(service, username): Returns the password stored in the active keyring. If the password does not exist, it will return None.返回当前活跃keyring中存储的密码,如果密码不存在,则返回None。

  • get_credential(service, username): 返回活跃keyring中的一个credential对象,对象中包含特定服务的username和password属性。username参数可以设置为None,如果某个服务存储了多组用户名密码,则会随机返回一组。

  • set_password(service, username, password): Store the password in the keyring.将密码存储入keyring中。

  • delete_password(service, username): Delete the password stored in keyring. If the password does not exist, it will raise an exception.删除存储在keyring中的密码,如果密码不存在,则会抛出异常。

 

有了Keyring库,我们就可以轻松将SAP、OA、浏览器等应用的用户名、密码进行系统安全级别的存储,也可以随时用脚本取出对应的凭据credential,为程序的自动登录、后台作业等场景提供支持,赶紧试试吧!

快来关注本公众号 获取更多爬虫、数据分析的知识!

标签:username,用户名,get,python,keyring,应用程序,密码,--,password
From: https://www.cnblogs.com/new-june/p/17790388.html

相关文章

  • 攻克数字--魔方罗盘的商品榜单数据生成python代码
    ①先配置,方法同数据解析入库(https://www.cnblogs.com/gkdata/p/17792339.html)②生成python代码importsyssys.path.append(r'D:\安装包\GKData\ApiConfig')importGkGk.Guid2DB_Path=r'"D:\安装包\GKData\3rdLibs\Guid2DB.exe"'_headers_dict......
  • Python 轻松生成PDF文档
    PDF(PortableDocumentFormat)是一种常用的文档格式,具有跨平台兼容性、保真性、安全性和交互性等特点。我们日常生活工作中的合同、报告、论文等通常都采用PDF格式,以确保文档在不同的操作系统(例如Windows、Mac、Linux)和设备上被查看时都能保持外观的一致性。Python是一种高效简洁......
  • 一周学会python3基础
    3Python基础Python程序员必须确保用户提供输入,并根据输入提供输出,这样才能拥有动态应用程序。Python解释器和程序中的所有函数都可以访问用户的输入值。3.1为什么需要输入值?应用程序的生存依赖于输入值。从网络应用程序到最新的元宇宙应用程序,一切运行都依赖于用户的输入值。例......
  • 一些不错的python 特征工程包
    特征工程在机器学习中是比较重要的,而且也是比较花费时间的,而且对于不同场景的业务(序列,机器视觉,NLP)会有不同的处理方式,整理了一些日常使用比较多的工具,可以参考工具包scikit-learn 比较老牌了,提供了不少特征工程的工具包,同时也提供了不少相关的算法实现autofeat 实现上与scikit-le......
  • 删除Python的安装目录
    删除Python的安装目录的步骤如下:1.打开文件资源管理器1。2.导航到Python的安装目录。默认情况下,Python的安装目录通常位于C:\\PythonXX,其中XX代表你安装的Python版本号2。如果你在安装时选择了其他位置,那么就导航到那个位置1。3.选中Python的安装目录,然后右键点击选择"删除"1......
  • 使用vscode编译python
    使用vscode编译python1.需要提前安装python,vscodewin10安装python32.在vscode中安装Python插件a.在vscode中高效率的编辑Python代码,需要安装Python插件,点击图1中红框内的按钮b.在左上角的搜索框中输入:Python,如图2所示,点击图2中红框内的按钮安装插件,点击后红框内的......
  • 删除Python的安装目录
    删除Python的安装目录的步骤如下:1.打开文件资源管理器1。2.导航到Python的安装目录。默认情况下,Python的安装目录通常位于C:\\PythonXX,其中XX代表你安装的Python版本号2。如果你在安装时选择了其他位置,那么就导航到那个位置1。3.选中Python的安装目录,然后右键点击选择"删除"1......
  • ChatGPT 实用小案例分享——使用Python重命名附件和统计发票合计金额
    大家好,我是皮皮。一、前言前几天在【志军】的星球看到了一个有意思的ChatGPT分享,正好喝Python相关的,一起来看看吧。ChatGPT实用小案例分享。如果你在高德或者滴滴上申请过开票,应该知道它们会给我们发一封邮件,发票和行程单都会放在附件中。由于高德是聚合平台,背后有很多网约车平台,......
  • 系统提取的部分数据存在异常,Python填充有其他更简单的方法么?
    大家好,我是皮皮。一、前言前几天在Python最强王者群【wen】问了一个Python自动化办公的问题,一起来看看吧。请教问题:友信平台因为系统提取的部分数据存在异常,导出的数据经常缺失客户名,但是客户账号是准确的,如果实现客户名自动填充?解决思路:1单独生成客户账号和客户名的表格,两个表格进......
  • 怎么用Python写一个浏览器集群框架
    这是做什么用的框架用途在采集大量新闻网站时,不可避免的遇到动态加载的网站,这给配模版的人增加了很大难度。本来配静态网站只需要两个技能点:xpath和正则,如果是动态网站的还得抓包,遇到加密的还得js逆向。所以就需要用浏览器渲染这些动态网站,来减少了配模板的工作难度和技能要求......