Unable to decrypt wallet.wallet file
Unable to decrypt wallet.wallet file
Loading saved threads...
user116159 · External communityPost link
External question — Bitcoin Stack Exchange
Author: user116159
Original post: https://bitcoin.stackexchange.com/questions/102902
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Adaptation: HTML converted to plain text; contact email addresses removed.
I have a wallet.wallet file that I
think
was created with Android bitcoin wallet or Multibit. It's base64 encoded.
Putting it in a decoder, it gives me this information, redacted just in case:
{"iv":"randomalphanumeric==","v":1,"iter":1000,"ks":256,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"randomalphanumeric=","ct":"randomalphanumeric="}
When I try to upload any part of that, including just the raw base64, into Electrum (the recommended alternative since multibit was deprecated) I get errors that its invalid. The android bitcoin app either can't read it or I don't know my password.
Does anyone have any idea what this is or what its for? Is it even cryptocurrency related?
Also, the last string has a ton of characters including forward slash "/" and plus signs "+". Not sure if that helps.
I did attempt to try and follow with this thread
Bitcoin Wallet for Android - Issues decrypting the wallet backup BIN file using OpenSSL
, but to no avail.
I get "error reading input file"
Quote
Report
RedGrittyBrick · External communityPost link
External answer — Bitcoin Stack Exchange
Author: RedGrittyBrick
Original post: https://bitcoin.stackexchange.com/a/102937
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Adaptation: HTML converted to plain text; contact email addresses removed.
Does anyone have any idea what this is or what its for?
It is obviously related to cryptography.
Since the Bitcoin network itself doesn't use encryption, this is likely a configuration file or data file for a specific wallet's scheme of encrypting the private-keys and other information that need to be protected from being stolen and misused.
{
"iv":"randomalphanumeric==",
"v":1,
"iter":1000,
"ks":256,
"ts":64,
"mode":"ccm",
"adata":"",
"cipher":"aes",
"salt":"randomalphanumeric=",
"ct":"randomalphanumeric="
}
iv
is
initialisation vector
v
is version
iter
is number of iterations of hashing when deriving key from password + salt.
ks
is key size.
ts
is tag size (for authentication-tag in CCM).
mode
is an encryption mode.
ccm
is probably something like
cipher chaining mode
?
cipher
is the encryption algorithm.
aes
is the "
advanced encryption standard
".
salt
is a
random number used to combat attacks
using precomputed dictionaries.
ct
is probably
"ciphertext"
- the encrypted version of some data ("plaintext").
the last string has a ton of characters including forward slash "/" and plus signs "+"
That is fairly common in encoding methods used to take binary data and present it using readable/printable characters. In this case it is probably
base64
encoding. As I think you know, encoding is not encryption, just an easily reversible presentation method.
By itself, it is of no use to you. If you know the password (encryption key) you could probably decrypt the possible ciphertext (ct value) after reversing the base64 encoding. You could then examine the (potentially binary) "plaintext" to see if it contains a Bitcoin private key.
The popular
openssl
application supports AES. See
its documentation
. I would start by listing algorithms using
openssl enc -ciphers
If you have a version that supports AES CCM (and maybe no version does) I would select that and then apply appropriate values to command arguments such as
-iter
,
-iv
etc.
There are many freely available tools and libraries for AES.
Quote
Report
Post Reply
Checking account access…