> On Jan 14, 2018, at 10:26 AM, Chris B <cryptoassetrecov...@gmail.com> wrote: > > I'm trying to help someone recover his password for an older format ethereum > encrypted private key (EPK). My plan has been to use his best guess at the > password to brute force the actual password. > > The EPK is a 132 character string, and it looks something like this: > U2FsdGV0X185M9YAa/27pmEvFzC5pqLI4xWrA6ouGVCx0EeJ9s8DzeGuBtYJPDCKDy0m80yvHdQYDMPa+Hwv2JPbuGJNoUMhFWpcQW1VF+EAy0tYb7Wtv2+IRWZzcpsE8e2a > > (That is: 128 ASCII digits and/or letters, plus three "+" and a "/".)
This input is base64 encoded: $ openssl base64 -d <<END | od -c U2FsdGV0X185M9YAa/27pmEvFzC5pqLI4xWrA6ouGVCx0EeJ9s8DzeGuBtYJPDCK Dy0m80yvHdQYDMPa+Hwv2JPbuGJNoUMhFWpcQW1VF+EAy0tYb7Wtv2+IRWZzcpsE 8e2a END 0000000 S a l t e t _ _ 9 3 326 \0 k 375 273 246 0000020 a / 027 0 271 246 242 310 343 025 253 003 252 . 031 P 0000040 261 320 G 211 366 317 003 315 341 256 006 326 \t < 0 212 0000060 017 - & 363 L 257 035 324 030 \f 303 332 370 | / ؓ 0000100 ** ۸ ** b M 241 C ! 025 j \ A m U 027 000 0000120 \0 313 K X o 265 255 277 o 210 E f s r 233 004 0000140 361 100 232 This does indeed look a lot like "openssl enc" output: $ echo foobar | openssl enc -aes256 -pass pass:foobar | od -c 0000000 S a l t e d _ _ 263 f 243 \0 242 ~ 031 3 0000020 266 035 Y 310 367 300 366 264 247 : $ s 236 266 4 340 0000040 Except that for some reason the "d" in "Salted" is a "t". Funny that these are the voiced and unvoiced variants of the same consonant, but note also that the ASCII code for 'd' = 0x64 and 't' = 0x74, so this is a 1 bit change. Any chance this is data corruption? > > This article > (https://www.reddit.com/r/Bitcoin/comments/3gwdge/importing_old_encrypted_private_keys/) > seems to describe a very similar EPK. In that sample, the base64-decoded data starts with "Salted__" as expected. > The author of that post decrypted their key with the following command: > > openssl enc -in FILE_OF_KEYS -a -d -salt -aes256 -pass pass:"PASSWORD_HERE" Hard to say whether that's correct, rather depends on the format of "FILE_OF_KEYS". You could try a dictionary attack on the actual 132-byte string, after base64-decoding, provided it is not corrupted. -- Viktor. -- openssl-users mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users