尝试使用 python 解密 chrome 密码时 AES 密钥长度不正确(356 字节)
Incorrect AES key length (356 bytes) while trying to decrypt chrome passwords using python
我正在尝试从“登录数据”sqlite 文件中解密我的 chrome 密码。我遵循了本教程:https://ohyicong.medium.com/how-to-hack-chrome-password-with-python-1bedc167be3d
代码显示在这里:
import sqlite3
from sqlite3.dbapi2 import Cursor
from Cryptodome.Cipher import AES
#The encrypt_key i got from "Local State" file
secret_key="<My Secret Key>"
#My "Login Data" file copied to a file called "login.db"
conn = sqlite3.connect("login.db")
cursor = conn.cursor()
cursor.execute("SELECT action_url, username_value, password_value FROM logins")
for index,login in enumerate(cursor.fetchall()):
url = login[0]
username = login[1]
ciphertext= login[2]
print("Url:",url)
print("Username",username)
print("Cipher Text",ciphertext)
initialisation_vector = ciphertext[3:15]
encrypted_password = ciphertext[15:-16]
cipher = AES.new(secret_key, AES.MODE_GCM, initialisation_vector)
decrypted_pass = cipher.decrypt(encrypted_password)
decrypted_pass = decrypted_pass.decode()
print(decrypted_pass)
这是我在 python2.7 和 python3
中遇到的错误
raise ValueError("Incorrect AES key length (%d bytes)" % len(key))
ValueError: Incorrect AES key length (356 bytes)
我确认我复制了正确的 secret_key 多次,但我仍然收到此错误。请帮我解决这个问题
Chrome 中的密钥是 base-64 编码的,并且具有文本“DPAPI”的固定前缀。你必须解码 base-64:
import base64
...
key = base64.b64decode(key)
他们 trim 关闭 header:
key = key[5:]
AES 构造函数应该正确接受它。
编辑:如果您查看所引用文章的末尾,您会看到 link 作者在 GitHub (https://github.com/ohyicong/decrypt-chrome-passwords) 上实现了他的方法。如果您查看他的源代码,您会发现他实际上完全按照我上面的建议进行操作。
我正在尝试从“登录数据”sqlite 文件中解密我的 chrome 密码。我遵循了本教程:https://ohyicong.medium.com/how-to-hack-chrome-password-with-python-1bedc167be3d 代码显示在这里:
import sqlite3
from sqlite3.dbapi2 import Cursor
from Cryptodome.Cipher import AES
#The encrypt_key i got from "Local State" file
secret_key="<My Secret Key>"
#My "Login Data" file copied to a file called "login.db"
conn = sqlite3.connect("login.db")
cursor = conn.cursor()
cursor.execute("SELECT action_url, username_value, password_value FROM logins")
for index,login in enumerate(cursor.fetchall()):
url = login[0]
username = login[1]
ciphertext= login[2]
print("Url:",url)
print("Username",username)
print("Cipher Text",ciphertext)
initialisation_vector = ciphertext[3:15]
encrypted_password = ciphertext[15:-16]
cipher = AES.new(secret_key, AES.MODE_GCM, initialisation_vector)
decrypted_pass = cipher.decrypt(encrypted_password)
decrypted_pass = decrypted_pass.decode()
print(decrypted_pass)
这是我在 python2.7 和 python3
中遇到的错误 raise ValueError("Incorrect AES key length (%d bytes)" % len(key))
ValueError: Incorrect AES key length (356 bytes)
我确认我复制了正确的 secret_key 多次,但我仍然收到此错误。请帮我解决这个问题
Chrome 中的密钥是 base-64 编码的,并且具有文本“DPAPI”的固定前缀。你必须解码 base-64:
import base64
...
key = base64.b64decode(key)
他们 trim 关闭 header:
key = key[5:]
AES 构造函数应该正确接受它。
编辑:如果您查看所引用文章的末尾,您会看到 link 作者在 GitHub (https://github.com/ohyicong/decrypt-chrome-passwords) 上实现了他的方法。如果您查看他的源代码,您会发现他实际上完全按照我上面的建议进行操作。