• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Ошибка в коде Python! Бэкап паролей

zheki444

One Level
28.12.2017
5
2
BIT
0
Добрый вечер.
Пытался написать программу для Бэкапа паролей из Браузеров, но столкнулся с некоторыми проблемами.
ZO1dw7AuQTQ.jpg

Python:
import os
import sqlite3
import win32crypt
#from glob import glob

######## username ##########
user = os.getlogin()
############################

def operaData():
    data = os.getenv("APPDATA")+r'\Opera Software\Opera Stable\Login Data'
    connection = sqlite3.connect(data)
    cursor = connection.cursor()
    cursor.execute('SELECT action_url, username_value, password_value FROM logins')
    final_data = cursor.fetchall()
    a = open('C:\\Users\\'+user+'\\opera.txt', 'w+')
    a.write('extracted opera passwords: \n')
    for website_data in final_data:
        password = win32crypt.CryptUnprotectData(website_data[2], None, None, None, 0)[1]# на этом выдает ошибку
        one = 'Website : '+str(website_data[0])
        two = 'Username : '+str(website_data[1])
        three = 'Password : '+str(website_data[2])
        a.write(one +'\n'+two+'\n'+three)
        a.write('\n'+'======='*10+'\n')
    a.close()
operaData()

def chromeData():
    data = os.getenv("LOCALAPPDATA")+r'\Google\Chrome\User Data\Default\Login Data'
    connection = sqlite3.connect(data)
    cursor = connection.cursor()
    cursor.execute('SELECT action_url, username_value, password_value FROM logins')
    final_data = cursor.fetchall()
    a = open('C:\\Users\\'+user+'\\chrome.txt', 'w')
    a.write('extracted chrome passwords: \n')
    for website_data in final_data:
        password = win32crypt.CryptUnprotectData(website_data[2])[1]# на этом выдает ошибку
        one = 'Website : '+str(website_data[0])
        two = 'Username : '+str(website_data[1])
        three = 'Password : '+str(website_data[2])
        a.write(one +'\n'+two+'\n'+three)
        a.write('\n'+'======='*10+'\n')
chromeData()

def yandexData():
    data = os.getenv("localAPPDATA")+r'\Yandex\YandexBrowser\User Data\Default\Ya Login Data'
    connection = sqlite3.connect(data)
    cursor = connection.cursor()
    cursor.execute('SELECT action_url, username_value, password_value FROM logins')
    final_data = cursor.fetchall()
    a = open('C:\\Users\\'+user+'\\yandex.txt', 'w')
    a.write('extracted yandex passwords: \n')
    for website_data in final_data:
        password = win32crypt.CryptUnprotectData(website_data[2], OptionalEntropy=None , Reserved=None , PromptStruct=None, Flags = 0)[2]# на этом выдает ошибку
        one = 'Website : '+str(website_data[0])
        two = 'Username : '+str(website_data[1])
        three = 'Password : '+str(website_data[2])
        a.write(one +'\n'+two+'\n'+three)
        a.write('\n'+'======='*10+'\n')
yandexData()
Очень интересно узнать где ошибка, просьба помочь и направить на правильный путь.
В Python я новичок.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!