最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 獲取谷歌瀏覽器保存的密碼

 更新時間:2021年01月06日 17:04:04   作者:rm-rf*  
這篇文章主要介紹了python 獲取谷歌瀏覽器保存的密碼的示例代碼,幫助大家更好的理解和使用python,感興趣的朋友可以了解下

由于谷歌瀏覽器80以后版本采用了新的加密方式,所以記錄在這里

# -*- coding:utf-8 -*-
import os
import json
import base64
import sqlite3
from win32crypt import CryptUnprotectData
from cryptography.hazmat.primitives.ciphers.aead import AESGCM

#  pip install pywin32
#  pip install cryptography
#  文檔:https://source.chromium.org/chromium/chromium/src/+/master:components/os_crypt/os_crypt_win.cc?q=OSCrypt&ss=chromium

class Chrome:
  def __init__(self):
    self.local_state = os.environ['LOCALAPPDATA'] + r'\Google\Chrome\User Data\Local State'
    self.cookie_path = os.environ['LOCALAPPDATA'] + r"\Google\Chrome\User Data\Default\Login Data"

  def get_key(self):
    with open(self.local_state, 'r', encoding='utf-8') as f:
      base64_encrypted_key = json.load(f)['os_crypt']['encrypted_key']
    encrypted_key_with_header = base64.b64decode(base64_encrypted_key)
    # 去掉開頭的DPAPI
    encrypted_key = encrypted_key_with_header[5:]
    key_ = CryptUnprotectData(encrypted_key, None, None, None, 0)[1]
    return key_

  @staticmethod
  def decrypt_string(key, secret, salt=None):
    """
    解密
    """
    # 去掉'v10'
    nonce, cipher_bytes = secret[3:15], secret[15:]
    aes_gcm = AESGCM(key)
    return aes_gcm.decrypt(nonce, cipher_bytes, salt).decode('utf-8')

  @staticmethod
  def encrypt_string(key, data, salt=None):
    """
    加密
    """
    aes_gcm = AESGCM(key)
    prefix = "v10".encode("utf-8")
    # 隨機生成12位字符串,拼接"v10" 共15位
    nonce = os.urandom(12)
    cipher_bytes = data.encode("utf-8")
    return prefix + nonce + aes_gcm.encrypt(nonce, cipher_bytes, salt)

  def get_password(self, host):
    sql = f"select username_value,password_value from logins where signon_realm ='{host}';"
    with sqlite3.connect(self.cookie_path) as conn:
      cu = conn.cursor()
      res = cu.execute(sql).fetchall()
      cu.close()
      result = []
      key = self.get_key()

      for name, encrypted_value in res:

        if encrypted_value[0:3] == b'v10' or encrypted_value[0:3] == b'v11':
          password = self.decrypt_string(key, encrypted_value)
        else:
          password = CryptUnprotectData(encrypted_value)[1].decode()
        result.append({'user_name': name, 'password': password})
      return result

  def set_password(self, host, username, password):
    key = self.get_key()
    encrypt_secret = self.encrypt_string(key, password)
    sq = f"""update logins set password_value=x'{encrypt_secret.hex()}' where signon_realm ='{host}' and username_value='{username}';"""
    with sqlite3.connect(self.cookie_path) as conn:
      cu = conn.cursor()
      cu.execute(sq)
      conn.commit()


if __name__ == '__main__':
  a = Chrome()
  aa = a.get_password("https://baidu.com")
  print(aa)

以上就是python 獲取谷歌瀏覽器保存的密碼的詳細內(nèi)容,更多關于python 獲取瀏覽器密碼的資料請關注腳本之家其它相關文章!

相關文章

  • python自動導入包的實現(xiàn)

    python自動導入包的實現(xiàn)

    本文主要介紹了python自動導入包的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • Python中使用MySQL模糊查詢的詳細方法

    Python中使用MySQL模糊查詢的詳細方法

    這篇文章主要介紹了Python中使用MySQL模糊查詢的方法,以下是一個使用pymysql進行模糊查詢的詳細示例,包括安裝庫、連接數(shù)據(jù)庫、執(zhí)行查詢以及處理結(jié)果,需要的朋友可以參考下
    2024-06-06
  • python中的句柄操作的方法示例

    python中的句柄操作的方法示例

    這篇文章主要介紹了python中的句柄操作的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • Pandas中GroupBy具體用法詳解

    Pandas中GroupBy具體用法詳解

    pandas中的DF數(shù)據(jù)類型可以像數(shù)據(jù)庫表格一樣進行groupby操作。通常來說groupby操作可以分為三部分:分割數(shù)據(jù),應用變換和和合并數(shù)據(jù)。本文就詳細的來介紹一下,感興趣的可以了解一下
    2021-07-07
  • Python matplotlib生成圖片背景透明的示例代碼

    Python matplotlib生成圖片背景透明的示例代碼

    這篇文章主要介紹了Python matplotlib生成圖片背景透明的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • pandas實現(xiàn)一行拆分成多行

    pandas實現(xiàn)一行拆分成多行

    這篇文章主要介紹了pandas實現(xiàn)一行拆分成多行方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python 字典一個鍵對應多個值的方法

    Python 字典一個鍵對應多個值的方法

    這篇文章主要介紹了Python 字典一個鍵對應多個值的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • 利用Python還原方陣游戲詳解

    利用Python還原方陣游戲詳解

    這篇文章的靈感來源于我玩游戲的時候,看見一個大佬在游戲里面建造了“還原方陣游戲”,就感覺很牛掰,就想著python不是有矩陣嗎,可以還原一下呢,感興趣的小伙伴可以了解一下
    2023-01-01
  • Python正則表達式學習小例子

    Python正則表達式學習小例子

    這篇文章主要介紹了Python正則表達式學習小例子,學習python的朋友可以參考一下
    2020-03-03
  • Python深入學習之閉包

    Python深入學習之閉包

    這篇文章主要介紹了Python深入學習之閉包,閉包(closure)是函數(shù)式編程的重要的語法結(jié)構(gòu),Python也支持這一特性,本文就這一特性做了講解,需要的朋友可以參考下
    2014-08-08

最新評論

稻城县| 肥城市| 永川市| 长顺县| 苍山县| 永顺县| 海林市| 左权县| 祁连县| 团风县| 哈尔滨市| 广德县| 灵璧县| 广河县| 乌什县| 贵南县| 闽侯县| 宝兴县| 平山县| 贡觉县| 公主岭市| 遂宁市| 大石桥市| 百色市| 曲水县| 丰原市| 肃宁县| 江西省| 金湖县| 江门市| 循化| 鹿邑县| 温泉县| 凉山| 北宁市| 临海市| 突泉县| 二连浩特市| 台北县| 九龙坡区| 昌宁县|