Расшифровка ключа и паролей Google-Chrome
Хочу не много разобраться в коде, а именно вот в этой строчке:
key = base64.b64decode(matches[0])[5:]
Не очень понимаю, что означает [0] и [5:] и для чего они нужны. Объясните пожалуйста или скиньте ссылку, где можно почитать.
import base64
import os
import re
import shutil
import sqlite3
import win32crypt
from Cryptodome.Cipher import AES
chrome_pass = os.getenv('LOCALAPPDATA') + r"\Google\Chrome\User Data\Default\Login Data"
chrome_key = os.getenv('LOCALAPPDATA') + r"\Google\Chrome\User Data\Local State"
def chrome():
if os.path.exists(chrome_pass):
with open(chrome_key, 'r') as f:
matches = re.findall(r'"encrypted_key":"(.+?)"', f.read())
key = base64.b64decode(matches[0])[5:]
secret_key = win32crypt.CryptUnprotectData(key, None, None, None, 0)[1]
shutil.copy2(chrome_pass, "Logincopy.db")
conn = sqlite3.connect("Logincopy.db")
cursor = conn.cursor()
cursor.execute('SELECT origin_url, username_value, password_value FROM Logins')
show = cursor.fetchall()
for origin_url, username_value, password_value in show:
print(password_value)
initialisation_vector = password_value[3:15]
encrypted_password = password_value[15:-16]
cipher = AES.new(secret_key, AES.MODE_GCM, initialisation_vector)
decrypted_pass = cipher.decrypt(encrypted_password)
decrypted_pass = decrypted_pass.decode()
text = origin_url + '\n' + username_value + '\n' + decrypted_pass + '\n'
print(text)
Источник: Stack Overflow на русском