0

7 years ago I exported the multibit classic wallet and private key, both encrypted. Only remember the key password now. Problems occurred when I tried to decrypt the key in following ways:

  1. installed MultiBit Classic 0.5.17 from web (might be dangerous).

    Created a new wallet and tried "tools--import private key". Chose the old key, input the password and clicked "decrypt". The password seemed correct because there wasn't a fail note, which always appeared for other passwords.

    Then, when I clicked "import private key", a fail note said "could not understand address in import file".

    To compare I exported a new encrypted private key and followed steps above. It worked well. Though the new key had a wrong timestamp in 2014, it didn't hinder the import.

  2. Used openssl in cmd to do direct decryption, found the only code:

openssl enc -d -p -aes-256-cbc -md md5 -a -in multibit.key -out key.txt -pass 'pass:myPassword'

that can decrypt the new key successfully. When decrypting the old key, it didn't show any error either, no "bad decryption". But the plain text was garbled like

?躠磱Q?39'ad"t鉼!?狡

_決[qp嗽雔紧鸘:?A濵彆r闞? &*绉i#唹B7鼞_z?

Tried lots of text-code-converter and they only gave different garbled text...

How would this happen? Was the old key exported incorrectly in 2013? Is there any hope?

0

I think what you are seeing is binary data being viewed using a program (or command) that expects ASCII or UTF-8 encoded character data.

I would add -base64 to the openssl command and see if that produces the results you expect.

If you need the key in a different encoding (like say base58 or WIF) you might have to do that as a separate step using a second command/program.


Decrypting keys from Multibit

I found some instructions for decrypting Multibit keys which don't say if they are for Multibit Classic, Multibit HD or for both. It may be they only work for one and not for the other.

This is the format of the MultiBit private key file
Keys are saved in an ASCII encoded text file.
There is one key per line (empty lines and lines starting with '#' are ignored).

\<Base58 encoded private key\>[\<any number of whitespace characters\>[\<key createdAt in UTC format\>]] 

To decrypt a MultiBit private key export file use:

openssl enc -d -p -aes-256-cbc -a -in \<ciphertext file\> -out \<plaintext file\> -pass pass:\<password\>

Note that this command lacks the -md md5 option you used. I would try this version.

The OpenSSL manual page says

-md digest
Use the specified digest to create the key from the passphrase. The default algorithm is sha-256.

so this would affect decryption.

The results you are reporting suggest that either the instructions you used don't apply to the particular version of Multibit you used or that you don't have the correct data file or perhaps don't have the correct password.


Importing keys into Electrum

According to instructions for importing keys into Electrum, Electrum needs the key in Wallet Import Format (WIF) so you'll need to convert your exported Multibit key into that format. It looks like it is easiest to start with a hexadecimal representation rather than the Base58 Multibit and others use.

Note that you can't just import a private key into Electrum at any time. You can only do that when you first initialise and create the Electrum wallet, not subsequently.

3
  • Thank you very much for the response! I added -base64 at the end of the openssl command but the result didn't change. So I used -openssl base64 -in ... -out ... to encode it directly. The result was not quite like a private address for it had 100+ characters including English letters, numbers and a few symbols like "/" and "=". I tried to import it to Electrum and its every substring from the beginning was not verified as a valid key. So did I encode it in a wrong way? – seeker Mar 1 at 3:55
  • See updated answer – RedGrittyBrick Mar 1 at 10:08
  • Thanks very much for your further help! It gives me more possibilites. Now I will think about the version of multibit classic, try the affection of modification on the cipher text or password, and try to convert the binary number to WIF format. I will update the progress. – seeker Mar 2 at 7:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.