本文研究的主要问题:有一个解密铬饼的事情,谷歌出了代码,却不能正常执行,原因在于sqlite3的版本太低,虽然我切换到了python3.5的环境,但sqlite3的版本也只有3.6 .
谷歌了许久,终于找到方法:
1,进入页面http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/
2,下载原子- sqlite - sqlite 3.8.5 - 2. - el6.art.x86_64.rpm
3, rpm -Uvh原子- sqlite - sqlite 3.8.5 - 2. - el6.art.x86_64.rpm
4,执行命令sqlite3 - version一切都好啦
顺便附上解析饼干的代码
#=utf - 8编码 进口操作系统 进口sqlite3 #输入密匙环 从加密。进口AES密码 从Crypto.Protocol。KDF进口PBKDF2 #为mac # my_pass=密匙环。get_password (“Chrome安全储存”,“铬”) # my_pass=my_pass.encode (use utf8) #迭代=1003 # cookie_file=os.path。expanduser(~/图书馆/应用支持/谷歌/铬/违约/cookie”) #为linux my_pass=盎ㄉ?encode (use utf8) 迭代=1 cookie_file=氨伞? 盐=b 'saltysalt ' 长度=16 4=b ' ' *长度 def expand_str(令牌): token_len=len(令牌) expand_len=(token_len//长度+ 1)* - token_len长度 返回token.encode (ascii) + b * expand_len \ x0c def aes_encrypt(令牌): 关键=PBKDF2 (my_pass、盐、长度,迭代) 密码=AES。新(钥匙,AES。MODE_CBC, 4=(四) enc_token=cipher.encrypt(令牌) b 'v10 ' + enc_token返回 def aes_decrypt(令牌): 关键=PBKDF2 (my_pass、盐、长度,迭代) 密码=AES。新(钥匙,AES。MODE_CBC, 4=(四) dec_token=cipher.decrypt(令牌) 返回dec_token def query_cookies (): 康涅狄格州sqlite3.connect (cookie_file): sql="选择host_key,名字,从饼干encrypted_value name=jzysYonghu” # sql=" select *从饼干” 结果=conn.execute (sql) .fetchall () 返回结果 def write_cookies (enc_token): 康涅狄格州sqlite3.connect (cookie_file): b=sqlite3.Binary (enc_token) sql=" "“更新cookie设置encrypted_value=https://www.yisu.com/zixun/?在name=remember_token”“” conn.execute (sql, (b)) def change_user(令牌): write_cookies (ase_encrypt (expand_str(令牌))) if __name__==癬_main__”: data=https://www.yisu.com/zixun/query_cookies () [0] [2] 打印(数据) 打印(len(数据)) print (aes_decrypt(数据[3:]))
加密后在字符串前面添加了一个v10,因此解密前要先去掉
以上就是本文关于python与sqlite3实现解密铬饼实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!