求手机APP有没有自动试密码的软件输入账号密码软件

知名密码管理软件 NordPass 在 2021 年 11 月发布了 2021 年度人们最常用的 200 个密码清单。毫无意外地,大众最为广泛使用的密码仍然是简单的数字组合和单词,如「123456」和「password」这种过于「朴素」的密码在排行榜中长期霸占着最靠前的位置。▲ NordPass 统计出的全球密码使用榜前十. 图片来自:NordPass简易的密码会为账号安全带来巨大风险,因而 APPSO 今天会推荐一款可以免费使用且可全平台同步的密码管理工具 Bitwarden。通过它我们可以方便安全的管理自己在各个平台的账号密码。为什么需要密码管理软件?绝大多数人在网络上的各种服务里往往使用着相同的密码。这些密码要么是上述提到的一些超级简单,易于识记的数字排列和字母,要么是自己的个人信息如手机号码,生日,姓名拼音等的简单组合。在当前个人信息严重泄漏的网络环境下,使用个人身份信息作为密码其实是存在着巨大隐患的。对于不同网站和 app 使用不同的「随机性」强密码是保障个人网络安全的重要举措。但这又同时带来另一个问题,我们不可能记住诸多没有规律的密码,将其记录于文件中又难以方便的调取使用。众多的密码管理软件便是为「人力所不能及」的记忆和方便的使用而服务的。也许你在使用 Edge 和 Chrome 的时候发现这些最新的浏览器已经具备「建议强密码」和「密码保存」功能,且能跨设备同步,那么我们为什么还需要一款专门的密码管理软件呢?▲ Edge 浏览器在网站中使用「建议强密码」功能来生成安全的随机密码其一是 Chrome 或者 Edge 保存在本地的密码内容可以轻易地被其它软件获取。当安装其它浏览器时,它会提示导入 Edge 或者 Chrome 的书签,密码等内容,只要你确认后,这些信息会完整的转移到其它浏览器。事实上,Chrome 的密码在电脑本地并非明文存储,但是其使用了 Windows 自带的加密机制,这仅仅意味着使用其它 Windows 账户登录无法获得密码。但在相同的 Windows 账户下,其它应用理论上都能获取浏览器保存的密码。若是电脑上存在木马应用,则这些密码信息会被完全泄露。▲ 浏览器间的数据转移功能,可直接转移密码信息A 君发现其实已经有一款绿色软件 WebBrowserPassView, 在无需 Windows 密码确认的情况下,便可直接查看和导出本地浏览器的所有账号密码。很容易想象这种软件功能若被用作恶意用途,将会带来多大的危害。▲ WebBrowserPassView 可直接查看到浏览器保存的密码其二是浏览器的密码管理缺少灵活的新增密码功能。用户无法在移动端的 app 上使用浏览器的密码管理来创建随机密码。简而言之,浏览器的密码管理是为浏览器本身服务,其应用范围很大程度上被限制在了该浏览器内。Bitwarden 是什么?Bitwarden 作为一款密码管理软件,它首先要做到的当然是安全。Bitwarden 是一款开源软件,你也许会有疑问开源是否会导致其保存的密码遭遇安全性的挑战,事实上恰好相反。密码学中著名的柯克霍夫原则指出,即使知道密码系统的所有运行步骤,只要缺乏对应的密钥,就无法获取加密的信息。因而只要保管好解锁的密钥,就能确保存储于其中的各项信息都是安全的。同时得益于服务端的开源,我们也可以将 Bitwarden 部署到自己的服务器上,从而让数据完全掌握在自己手里。▲ Bitwarden 在 github 上完整开源了服务端,客户端,网页端源代码Bitwarden 对用户的账号和主密码使用散列算法进行了处理(散列算法是指对任意的原始数据进行计算操作,得到散列值。该计算过程是单向的,不可逆的,人们无法从最终生成的散列值反向得到原始数据,从而被广泛应用于数据加密),对存储于其上的各种数据都实施了端对端的加密,且原始数据加密的过程在本地设备完成,之后再上传到 Bitwarden 的服务器。因而,Bitwarden 的服务器上保存的是完全加密后的信息,只有通过用户设置的账号和主密码才能完成信息的解密。即使在服务端发生数据泄露,所有信息对第三方仍然是无法理解的密文。▲ Bitwarden 对账户和主密码使用一系列复杂的散列算法和加密算法来进行处理,确保账户安全性Bitwarden 提供了全平台的原生软件,且有着功能完备的网页端,它的插件支持所有的主流浏览器,十分方便用户在各种情境下的使用。▲ Bitwarden 对桌面端,浏览器,移动端提供了全面的支持Bitwarden 怎么用?Bitwarden 的大部分功能对个人用户免费,在此 A 君仅对免费版的功能做出说明。注册账号,创建一个安全的主密码在开始之前,我们首先需要注册一个账户。进入 Create Account
Bitwarden Web Vault ,使用邮箱作为账号,再设置Bitwarden的主密码。▲ Bitwarden 注册界面主密码的设置建议选取一个不同于其它应用的强密码。考虑到密码复杂度,同时又要易于记忆,你可以根据自己的习惯选择字母和数字以及特殊符号的组合,且保证足够的密码长度。具体地,字母最好包含大小写,数字避免直接使用身份信息,可以截取手机号码等记忆牢固的数字信息的片段并进行简单易记的二次运算处理,最后,可以插入如感叹号,问号等特殊符号于某个位置,这将大大增强密码的强度。例如,某人名为张三,出生于 1988 年 8 月 26 日,手机号后四位为 2345,那么设置这样一个密码:Sanz!208862?2354。除了插入其中的特殊符号,我们对姓名的拼音进行了简写和位移,对出生年进行了加 100 的运算,省去了月份,对出生日期进行了倒序,且对手机号码后四位的最后两位也进行了倒序。因为本身我们对个人信息是烂熟于心的,我们所需要记忆的只剩对字母和数字的二次处理动作以及特殊符号的位置。以上是提供给大家设置密码的一个思路,你可根据自己喜欢的方式来对原始信息进行二次处理和排列。设置完密码后,我们可以进入 Bitwarden 开发的 Password Strength Testing Tool来检查密码的强度,我们无需担心自己的密码在该网站泄露,因为判别密码强度这一过程完全是在浏览器本地进行的。▲ 密码强度检验,结果显示该密码强度足够,预估破解时间达到数百年除了设置一个安全的主密码,我们还可以开启「双重验证」登录。「双重验证」是指登录账号除了需要密码,还需要额外的验证信息,例如临时性的邮箱验证码。Apple, Google 等互联网巨头已逐步推行甚至实施强制性的「双重验证」登录来保护用户账号安全。因而,对 Bitwarden 开启「双重验证」登录,相当于又加了一把锁,这将大大提升账户安全性。▲ Google 基于 Android 设备和坚果云基于微信公众号验证码的「双重验证」▲ Bitwarden 开启邮箱验证码「双重验证」密码导入和导出注册成功后,下载好自己所用平台的客户端和浏览器插件,就可以开始使用。首先,Bitwarden 提供了导入浏览器和其它主流密码管理软件密码库的功能,从而用户能够方便的导入其它平台的密码数据。▲ Bitwarden 导入其它平台的数据除了便捷的导入,Bitwarden 也提供了方便的导出功能。敏感数据不能被强制绑定在一个平台,这也是几乎所有同类软件的共识。▲ 在验证主密码后 Bitwarden 可以导出所有数据在浏览器中使用 Bitwarden 插件工作和学习中人们使用最多的场景大多是浏览器,因而 A 君首先介绍浏览器插件的使用。以 Coursera 网站为例,我们需要注册一个新的账号,我们点击 Bitwarden 插件图标进入主界面,再选择右上角的加号「添加项目」。▲ Bitwarden 浏览器插件在网页中「添加项目」接着,填入我们要注册的账号名称,点击上图中矩形框所围绕的图标选择创建随机密码。进入生成密码的界面后,可以选择密码长度,包含的字符类型,确认后点击右上角的「选择」,重新进入「添加项目」页面保存设置的账号数据。▲ Bitwarden 密码生成器在添加好 Coursera 的账户信息后,再次进入 Coursera 网页,Bitwarden 插件的右小角就会出现一个数字角标,表示在该网站保存的账号数目。点击 Bitwarden 插件选择账号栏后即可自动填充账号信息到对应位置。▲ Bitwarden 自动填充账号信息Bitwarden 支持建立文件夹,从而用户可以将账号根据类型归纳到不同的文件夹中,方便后续查找。▲ Bitwarden 文件夹除了保存网站和 app 的账号信息,Bitwarden 也能保存个人身份信息以及银行卡户信息,同时也支持保存文本内容。在添加信息时,打开「重新询问主密码」选项,意味着在已经登录账号的情况下,针对一些敏感信息仍需要输入主密码来进一步确保账户安全性。▲ Bitwarden 添加银行卡户信息对 Bitwarden 设置密码库超时动作,在超过一定时间或者重启浏览器后,用户就需要重新输入主密码来确认账号。当然,你也可以关闭密码库超时的默认设置。▲ Bitwarden 密码库超时锁定设置客户端生物识别解锁在完成登录后,Bitwarden 还支持后续使用设备自带的生物识别进行解锁。如果你的 PC 支持 Windows Hello,你便可以使用人脸或指纹识别方便的解锁密码库。在 Mac 平台上,Bitwarden 支持 Touch ID 解锁。▲ 在 Windows 上使用面部识别解锁 Bitwarden在移动端上,Bitwarden 也支持 Android 和 iOS 设备的指纹或者 3D 面容的快速解锁方式。移动端自动填充Bitwarden 支持在 Android 和 iOS 上全局性的密码自动填充。当 Bitwarden 匹配到当前网页或者 app 的登录界面,在键盘上方就会自动弹出对应的账号信息,点击解锁即可填充到输入框里。Bitwarden 的 Android 客户端具有极高的权限,在应用中无法截屏和录屏,可谓是对敏感信息给予了最严格的保护。▲ Android 端网页和 app 中自动填充功能展示▲ Bitwarden 在 iOS 上设置Face ID 解锁以及自动填充功能展示以上就是 Bitwarden 的大部分基础功能,Bitwarden 还有收费的高级版本,提供了更多高阶功能。但对普通用户而言,免费版本已能满足密码管理的需求。想对数据拥有更多掌控权?如果你对密码管理软件云服务的可靠性始终保持着怀疑,你可以尝试开源的 Keepass。Keepass 默认的数据库存储在本地,但可以借助坚果云的 WebDAV 实现全平台的同步。如果觉得配置繁琐,你也可以使用 SafeInCloud,其桌面端免费,移动端为买断制。使用 SafeInCloud 可以直接借助 OneDrive, Dropbox 等大厂的产品以及 WebDAV 来进行同步,且界面相较 Keepass 更为美观。▲ SafeInCloud 支持网盘同步总结在这个高度信息化的时代,信息承载着许多个人和企业的生存之本,而信息安全在当下充满着各种挑战。在不久前,黑客组织 Lapsus$对英伟达和三星进行了入侵,并获取了英伟达大量的员工信息以及一些核心机密资料。如此庞大的企业巨头也会不断地遭受信息泄露的威胁,而个人信息泄露的状况则更为严重。▲ 英伟达数据遭黑客窃取因而,我们应该关注自己的信息安全,做好个人信息的防护。使用密码管理软件来对不同服务生成独立的强密码便是保障账户安全的重要措施。在此 A 君主要推荐了 Bitwarden, 因为开源从而具有可检验的安全性,且核心功能均可免费使用。如果你对数据可靠性有更高追求,那么 Keepass 或者 SafeInCloud 是不错的选择。最后,欢迎大家在评论区讨论你所使用的密码管理工具,或者分享你对密码管理的独特心得。本文作者:郭伟

版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途此文章来源于项目官方公众号:“AirtestProject”
前言前俩天看到Airtest讨论群里面提出了1个有意思的问题:一位同学在测试自动装包的过程中,发现像oppo、vivo这类品牌的手机在装包过程中都需要输入账号密码,而这会直接让 install() 指令运行失败。值得思考的是,我们如何保证在安装应用的过程中,同时完成输入账号密码的任务而不中断安装应用的任务呢?利用多线程解决装包过程输入密码的问题看到这里,相信很多同学已经想到了可以利用多线程来解决这个问题了。没错,利用python的多线程确实可以帮助我们轻松地实现同时 运行多个任务。关于新建线程,我们需要用到python标准库里面的 threading 模块:from threading import Thread
# 新建1个新的线程
# 其中function为线程函数,args为传递给线程函数的参数,它必须是tuple类型
t1 = threading.Thread(function, args)
# 将线程设置为守护线程
t1.setDaemon(True)
# 启动线程活动
t1.start()
简单了解完python线程的一些基础用法,我们回到刚才的问题上来,在执行安装应用的任务之前,我们可以先开启1个线程,用于等待输入账号密码弹窗的弹出,以及输入账号密码、点击安装等操作:完整的示例代码如下:# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
from airtest.core.api import *
from threading import Thread
auto_setup(__file__)
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
def input_pw():
sleep(5.0)
# 等待弹窗出现
wait(Template(r"tpl1604980843615.png", record_pos=(-0.001, -0.029), resolution=(720, 1440)),timeout=60)
sleep(2.0)
# 点击输入密码
touch(Template(r"tpl1604978804097.png", record_pos=(0.211, 0.233), resolution=(720, 1440)))
sleep(2.0)
poco("com.coloros.safecenter:id/et_login_passwd_edit").click()
poco("com.coloros.safecenter:id/et_login_passwd_edit").set_text("password")
sleep(2.0)
poco("android:id/button1").click()
sleep(2.0)
touch(Template(r"tpl1604979337502.png", record_pos=(-0.003, 0.608), resolution=(720, 1440)))
# 新建用于等待弹窗输入账号密码的线程
a_thread = Thread(target=input_pw)
a_thread.setDaemon(True)
a_thread.start()
install(r"D:\demo\tutorial-blackjack-release-signed.apk")
PS:感谢Airtest用户“jxou”提供了上述的解决思路。知识拓展1.install()与uninstall()install() 与 uninstall() 都是Airtest的核心API,分别用于 安装应用和卸载应用 ,并且它们都 仅支持安卓平台 :install(filename) ,其中 filename 为被安装应用的路径uninstall(package), 其中 package 为被卸载应用的包名示例:from airtest.core.api import *
install(r"D:\demo\tutorial-blackjack-release-signed.apk")
uninstall("org.cocos2dx.javascript")
2.install_app()与uninstall_app()在 airtest的安卓模块 下,也提供了安装和卸载应用的方法,分别是 install_app() 和 uninstall_app() 。相比于 install() 方法,install_app(filename,replace=False,install_options=[]) 的参数更加丰富:filepath ,apk文件在PC上的完整路径replace , 如果应用已存在,是否替换,默认为Falseinstall_options ,install 命令的额外选项,默认是[],可填入 "-l"、"-t"、"-s"、"-d"和"-g" 等参数,用于控制安装apk的行为其中,install_options 的参数含义如下:"-l" ,将应用安装到保护目录/mnt/asec"-t" ,允许安装AndroidManifest.xml里application指定android:testOnly="true"的应用"-s" ,将应用安装到sdcard"-d" ,允许降级覆盖安装"-g" ,授予所有运行时权限示例:from airtest.core.android.android import *
android = Android()
# 非覆盖安装
android.install_app(r"D:\demo\tutorial-blackjack-release-signed.apk",False)
# 覆盖安装
android.install_app(r"D:\demo\tutorial-blackjack-release-signed.apk",True)
android.uninstall("org.cocos2dx.javascript")
另外这个安卓模块下,还提供了一些其它的与应用相关的方法:list_app(third_only=False) ,返回packages列表,third_only如果为 True ,只返回所有第三方应用列表path_app(package) ,打印出package的完整路径check_app(package) ,检查package在设备中是否存在实际的测试应用中,比如我们要往设备中安装某个应用,可以先使用 check_app(package) 检查当前设备是否已经安装了该应用,然后再决定是直接安装还是覆盖安装:from airtest.core.android.android import *
android = Android()
try:
android.check_app("org.cocos2dx.javascript")
print("当前设备已存在待安装应用,执行覆盖安装")
android.install_app(r"D:\demo\tutorial-blackjack-release-signed.apk",True)
except AirtestError:
print("当前设备不存在待安装应用,执行非覆盖安装")
android.install_app(r"D:\demo\tutorial-blackjack-release-signed.apk",False)
3.start_app()、stop_app()与clear_app()其它常用于应用操作的方法还有 start_app() 、stop_app() 与 clear_app():start_app() ,在设备上启动目标应用,适用于Android和iOS平台stop_app() ,终止目标应用在设备上的运行,适用于Android和iOS平台clear_app() ,清理设备上的目标应用数据,仅适用于Android平台小结今天主要跟大家分享了用多线程解决自动装包过程需要输入账号密码的问题,另外还给大家补充了一些airtest在应用操作这方面的方法,奉上新鲜整理好的思维导图,有需要的同学可以先保存起来方便后续查看哦:Airtest官网:http://airtest.netease.com/Airtest教程官网:https://airtest.doc.io.netease.com/搭建企业私有云服务:https://airlab.163.com/b2bAirtest官方答疑Q群:1017250147

我要回帖

更多关于 有没有自动试密码的软件 的文章