python控制浏览器脚本_Chrome 33+浏览器 Cookies encrypted_value解密脚本(python实现)...

Chrome浏览器版本33以上对Cookies进行了加密,用SQLite Developer打开Chrome的Cookies文件就会发现,原来的value字段已经为空,取而代之的是加密的encrypted_value。如下图所示

从stackoverflow.com了解到。Windows上Chrome加密Cookies采用的CryptUnprotectData函数,通过网络搜索发现,CryptUnprotectData函数用途非常广泛。连Windows电脑上保存的wifiI密码都是用这个函数加密的。大牛 @李劼杰?已经用这个解密函数在python里实现了获取本机保存的wifi密码(http://www.lijiejie.com/python-get-all-saved-wifi-passwords/)和Chrome浏览器里已保存的账号密码(http://www.lijiejie.com/python-get-chrome-all-saved-passwords/)。运行他的脚本让我惊出一声冷汗(如下图),原来Chrome这么不安全,要是Login Data文件被别人获取,真的是非常危险的事情。

参考大牛 @李劼杰 的代码,我改编出来了一个Chrome 33+浏览器 Cookies encrypted_value解密脚本(python实现),代码如下:

__author__ = 'ftium4.com'

import sqlite3

import win32crypt

outFile_path=r'D:chrome_cookies.txt';

sql_file= r'C:Users\jiangling\AppData\Local\Google\Chrome\User Data\DefaultCookies';

sql_exe="select host_key,name,value,encrypted_value from cookies";

conn = sqlite3.connect(sql_file)

for row in conn.execute(sql_exe):

pwdHash = str(row[3])

try:

ret = win32crypt.CryptUnprotectData(pwdHash, None, None, None, 0)

except:

print 'Fail to decrypt chrome cookies'

sys.exit(-1)

with open(outFile_path, 'a+') as outFile:

outFile.write('host_key: {0:<20} name: {1:<20} value: {2} nn'.format(

row[0].encode('gbk'), row[1].encode('gbk'),ret[1].encode('gbk')) )

conn.close()

print 'All Chrome cookies saved to:n' + outFile_path

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的使用Python和OpenCV实现图像和视频加密的示例代码: ```python import cv2 import numpy as np def encrypt(img_path, key): # 读取图像 img = cv2.imread(img_path) # 将图像转换为灰度图 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 获取图像的宽度和高度 height, width = gray.shape # 生成随机数种子 np.random.seed(key) # 生成与图像大小相同的随机数矩阵 rand_matrix = np.random.randint(0, 256, (height, width)) # 对图像进行异或运算 encrypted_img = cv2.bitwise_xor(gray, rand_matrix) # 返回加密后的图像 return encrypted_img def decrypt(encrypted_img, key): # 获取图像的宽度和高度 height, width = encrypted_img.shape # 生成随机数种子 np.random.seed(key) # 生成与图像大小相同的随机数矩阵 rand_matrix = np.random.randint(0, 256, (height, width)) # 对加密图像进行异或运算 decrypted_img = cv2.bitwise_xor(encrypted_img, rand_matrix) # 返回解密后的图像 return decrypted_img def encrypt_video(video_path, key): # 读取视频 cap = cv2.VideoCapture(video_path) # 获取视频的帧率、宽度和高度 fps = int(cap.get(cv2.CAP_PROP_FPS)) width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 创建VideoWriter对象,用于写入加密后的视频 fourcc = cv2.VideoWriter_fourcc(*'mp4v') encrypted_video = cv2.VideoWriter('encrypted_video.mp4', fourcc, fps, (width, height), isColor=False) # 读取视频帧并加密 while True: ret, frame = cap.read() if not ret: break # 将图像转换为灰度图 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 加密图像 encrypted_frame = encrypt(gray, key) # 将加密后的帧写入加密视频 encrypted_video.write(encrypted_frame) # 释放资源 cap.release() encrypted_video.release() def decrypt_video(encrypted_video_path, key): # 读取加密视频 cap = cv2.VideoCapture(encrypted_video_path) # 获取加密视频的帧率、宽度和高度 fps = int(cap.get(cv2.CAP_PROP_FPS)) width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 创建VideoWriter对象,用于写入解密后的视频 fourcc = cv2.VideoWriter_fourcc(*'mp4v') decrypted_video = cv2.VideoWriter('decrypted_video.mp4', fourcc, fps, (width, height), isColor=False) # 读取加密视频帧并解密 while True: ret, frame = cap.read() if not ret: break # 解密帧 decrypted_frame = decrypt(frame, key) # 将解密后的帧写入解密视频 decrypted_video.write(decrypted_frame) # 释放资源 cap.release() decrypted_video.release() # 测试加密解密图像 encrypted_img = encrypt('test_img.jpg', 123) cv2.imwrite('encrypted_img.jpg', encrypted_img) decrypted_img = decrypt(encrypted_img, 123) cv2.imwrite('decrypted_img.jpg', decrypted_img) # 测试加密解密视频 encrypt_video('test_video.mp4', 123) decrypt_video('encrypted_video.mp4', 123) ``` 该代码中的 `encrypt` 函数和 `decrypt` 函数分别实现了图像的加密和解密操作,使用的加密算法是将图像的每个像素值与一个随机数进行异或运算,随机数矩阵的生成使用了Numpy库中的随机数函数。 `encrypt_video` 函数和 `decrypt_video` 函数分别实现了视频的加密和解密操作,使用的方法是对视频中的每一帧进行加密或解密操作,然后将加密或解密后的帧写入加密或解密视频中。 请注意:该示例代码仅为了演示加密和解密的基本原理,实际应用中需要使用更加复杂的加密算法和密钥管理方法,以确保加密的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值