Chrome has an ugly habit of storing saved passwords in KWallet as pickles, which you can't just read from KWalletManager when you need to get the password. This is problematic if you want to switch browsers, or just use more that one but don't want to launch and delve into chrome just to get that one password.
Although the pickle format doesn't seem standard, it mostly works to get every other character as to excise the utf16 (or whatever) text and eyeball the password. Here:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
# -*- coding: utf-8 -*- | |
# Quick and dirty Chrome kwallet password extractor | |
from PyKDE4.kdeui import KWallet | |
from PyQt4.QtGui import QApplication | |
from sys import argv | |
app = QApplication([]) | |
app.setApplicationName("Chrome password extractor") | |
wallet = KWallet.Wallet.openWallet(KWallet.Wallet.LocalWallet(), 0) | |
wallet.setFolder("Chrome Form Data") # check your wallet for exact folder name | |
entries = wallet.entryList() | |
entry = entries.filter(argv[1])[0] | |
entry = wallet.readEntry(entry)[1] | |
# outputs ugly slice of pickled data, hopefully you can eyeball the passsword from there | |
print(repr(str(entry[0:-1:2]))) |