python与sqlite3实现解密chrome cookie实例代码
本文研究的主要问题:有一个解密chrome cookie的事情,google出了代码,却不能正常执行,原因在于sqlite3的版本太低,虽然我切换到了python3.5的环境,但sqlite3的版本也只有3.6。
google了许久,终于找到方法:
1、 进入页面 http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/
2、 下载 atomic-sqlite-sqlite-3.8.5-2.el6.art.x86_64.rpm
3、 rpm -Uvh atomic-sqlite-sqlite-3.8.5-2.el6.art.x86_64.rpm
4、 执行命令 sqlite3 -version 一切都ok啦
顺便附上解析cookie的代码
#coding=utf-8 import os import sqlite3 #import keyring from Crypto.Cipher import AES from Crypto.Protocol.KDF import PBKDF2 #for mac #my_pass = keyring.get_password('Chrome Safe Storage', 'Chrome') #my_pass = my_pass.encode('utf8') #iterations = 1003 #cookie_file = os.path.expanduser('~/Library/Application Support/Google/Chrome/Default/Cookies') #for linux my_pass = 'peanuts'.encode('utf8') iterations = 1 cookie_file = 'Cookies' salt = b'saltysalt' length = 16 iv = b' ' * length def expand_str(token): token_len = len(token) expand_len = (token_len // length + 1) * length - token_len return token.encode('ascii') + b'\x0c' * expand_len def aes_encrypt(token): key = PBKDF2(my_pass, salt, length, iterations) cipher = AES.new(key, AES.MODE_CBC, IV=iv) enc_token = cipher.encrypt(token) return b'v10' + enc_token def aes_decrypt(token): key = PBKDF2(my_pass, salt, length, iterations) cipher = AES.new(key, AES.MODE_CBC, IV=iv) dec_token = cipher.decrypt(token) return dec_token def query_cookies(): with sqlite3.connect(cookie_file) as conn: sql = "select host_key, name, encrypted_value from cookies where name = 'jzysYonghu'" #sql = "select * from cookies" result = conn.execute(sql).fetchall() return result def write_cookies(enc_token): with sqlite3.connect(cookie_file) as conn: b = sqlite3.Binary(enc_token) sql = """update cookies set encrypted_value = ? where name = 'remember_token'""" conn.execute(sql, (b, )) def change_user(token): write_cookies(ase_encrypt(expand_str(token))) if __name__ == '__main__': data = query_cookies()[0][2] print(data) print(len(data)) print(aes_decrypt(data[3:]))
加密后在字符串前面添加了一个v10,因此解密前要先去掉
总结
以上就是本文关于python与sqlite3实现解密chrome cookie实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
- 基于sqlalchemy对mysql实现增删改查操作
- 基于SQLAlchemy实现操作MySQL并执行原生sql语句
- python数据库操作mysql:pymysql、sqlalchemy常见用法详解
- python orm 框架中sqlalchemy用法实例详解
- python使用SQLAlchemy操作MySQL
- Python SQLAlchemy入门教程(基本用法)
- python SQLAlchemy的Mapping与Declarative详解
- python SQLAlchemy 中的Engine详解
- Python流行ORM框架sqlalchemy安装与使用教程
- python 获取sqlite3数据库的表名和表字段名的实例
- Python_查看sqlite3表结构,查询语句的示例代码
- python使用sqlite3时游标使用方法
- Python SQLite3简介
- Python使用flask框架操作sqlite3的两种方式
- Python SQLite3数据库日期与时间常见函数用法分析
- Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
- Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
- Python sqlite3事务处理方法实例分析
- Python简单操作sqlite3的方法示例
- Python3+SQLAlchemy+Sqlite3实现ORM教程
相关文章
详解用python -m http.server搭一个简易的本地局域网
这篇文章主要介绍了详解用python -m http.server搭一个简易的本地局域网,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-09-09python读取和保存为excel、csv、txt文件及对DataFrame文件的基本操作指南
最近在做一个项目,必须把结果保存到excel文件中,下面这篇文章主要给大家介绍了关于python读取和保存为excel、csv、txt文件及对DataFrame文件的基本操作指南的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2022-08-08浅谈python 四种数值类型(int,long,float,complex)
下面小编就为大家带来一篇浅谈python 四种数值类型(int,long,float,complex)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-06-06Python实现图片裁剪的两种方式(Pillow和OpenCV)
这篇文章主要介绍了Python实现图片裁剪的两种方式(Pillow和OpenCV),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-10-10
最新评论