Piuk has just made a patch to MultiBit that enables blockchain.info 'json' and 'aes.json' files to be imported.
This patch was included in MultiBit 0.3.4.
Here is the how-to:
Export wallet from blockchain.info -> Import to MultiBit
1) Do a wallet export from blockchain.info
2) Import into MultiBit using the 'Import private keys' screen.
2.1) In the file chooser you choose the blockchain.info file suffix of ".json" or ".aes.json".
2.2) Choose the blockchain.info export file you want to import.
2.3) Add in either the single password or both passwords if it is double encrypted.
2.4) Press "Import private keys".
Because there are no private key creation dates in the blockchain.info exports I unfortunately have to replay the blocks from the genesis block (this takes a couple of hours) so it is more a "get out of jail" option than something you would use day to day.
How can I easily verify the result of decrypt() is correct?
A friend of mine lost his wallet password, I would like to iterate on a lots of potential passwords he might have chosen until I find the right one. – ripper234 – 2013-02-19T12:55:44.447
It seems the python script requires
Crypto:Cypher, as a python noob it's a bit difficult to install it on Windows. I'm working at it, just a fair warning to newcomers. – ripper234 – 2013-02-22T16:12:37.497Note that my script doesn't convert the private key into 'sipa' format, which is what the official bitcoin client will need (v0.6 onwards) to import a private key. The private keys in the decrypted wallet are in base58 format, but not the 'sipa' format, which includes a checksum. I intend to fix my script to convert private keys to 'sipa' format. – Chris Moore – 2012-02-29T19:07:32.957
2Now it shows the key in 'sipa' format too. – Chris Moore – 2012-02-29T20:11:24.913
Both valid answers now, accepting this one both for the effort and because of python. – o0'. – 2012-03-27T11:05:15.780
I added wallet input from file, and I took the liberty to create a project on bitbucket for that: https://bitbucket.org/lohoris/mywallet-restore
– o0'. – 2012-04-30T14:05:34.5031What, code development in stackexchange comments not good enough for ya? ;)
Nice work. – Chris Moore – 2012-04-30T15:55:57.573
When I try this on my backed up wallet, I get "ValueError: No JSON object could be decoded". I'm new to working with this crypto library, how would you suggest I go about trouble shooting? – Andrey Fedorov – 2012-05-09T06:21:17.913
I get the same now. It looks like the backup format has changed. A quick glance at the source of https://blockchain.info/DecryptWallet.html shows that it now tries 4 different encryption modes, each with 0 through 19 iterations of AES encryption, which I don't think it used to do.
– Chris Moore – 2012-05-10T09:07:06.617That code is crap. The mode currently used is CBC. The way he's passing in iterations is also confusing (and not in the original ezcrypto code AFAICT), as that option actually specifies the number of rounds run on PBKDF2 when deriving a key from the password (and it's 10 rounds, always).
Here's a working version for the latest format: https://gist.github.com/2757146
@AndreyFedorov "The Gist you were looking for has been deleted. Sorry about that!" – Chris Moore – 2012-05-20T15:33:52.353
2
So https://gist.github.com/2757171 is the fixed version.
– Chris Moore – 2012-05-20T21:04:24.017Yup, sorry 'bout that. – Andrey Fedorov – 2012-06-22T00:27:03.230