1. Write something in Javascript that uses the CryptoJS library but reads individual lines from a file and decrypts them
or
2. Attempt to mimic the default CryptoJS settings in another language like Python and read in individual lines from a file and decrypt them
If you're not able to write such a script yourself, you'd need to find someone you trust and get them to do it for you.
EDIT: I got bored
EDIT 2: OOPS!! forgot the part where it says "use a SHA256 of your password as the key!"
I've hacked up a small javascript that can be run using NodeJS (https://nodejs.org/). It seems to be decrypting stuff (I installed the "SpareCoins" extension, backed up the wallet, and tested the script on the encrypted keys from the backup file)... So, fingers crossed it would work for your file. No guarantees tho!
NOTES:
- You need the 'rollup' aes.js from CryptoJS (I've included it with my script on keybase link below).
- You need to edit the dev_keys.js file and put your password in as the 'key'
- All your encrypted keys need to be in a file called 'encrypted_keys.txt', one encrypted key per line (see example below)
- It'll create a file called 'decrypted_keys.txt', with one decrypted privatekey per line
- I've put copies of all the files on my keybase.io: https://keybase.pub/hcp/dec_keys/
- As always, use at your own risk! - I accept no responsibility for anything that happens should you decide to try this script!
var crypto = require('crypto');
eval(fs.readFileSync('aes.js')+'');
var key = 'password';
var hash = crypto.createHash('sha256').update(key).digest('hex');
var array = fs.readFileSync('encrypted_keys.txt').toString().split("\n");
for(i in array) {
if (array[i].length > 0) {
var decrypted = CryptoJS.AES.decrypt(array[i], hash);
var utf8 = CryptoJS.enc.Utf8.stringify(decrypted);
process.stdout.write(utf8+"\n");
fs.appendFile('decrypted_keys.txt', utf8+"\n", err => {
if (err) {
console.error(err);
return;
}
//done!
})
}
}
example encrypted_keys.txt (the passkey is 'password'):
U2FsdGVkX18m7rxwczplFDZrommKXG5tZxVAN4YKVftdXw1biTsE+Q+vPUHRd6Qd1S3Rc/lzjO1leP0DLR1VkcUj9kOTqHeR+Yl9dw8hy40=
U2FsdGVkX18nW63+xUt/qWrFvKBAON6CXtTgZKs2X+qiGWrdMGJQgL+HuMRhof/RMzjFzb5nPRP0vUguCz7Zq+VcoDVS6cGhd+FFiYvAoxU=
U2FsdGVkX1+mANMbct/hfRfJAnboeLA51UVLY2OqCm+F4LRAo9HZwbiSBUNO1Vs+TC2jrEl3hoSXYBbexYdd1+BAIygipIqQhtjsq+Ov1kA=
U2FsdGVkX19BnQf2anIVfHOFpKBroUXat7HdDqWcO54fEqHs8tGo8VwqUIGtQLJYvraLyrwAF6Rh6CxMo1kmx/kuGdN+H7QR49C021UpyAo=
U2FsdGVkX1/BDfQr34Q82ApeZgkIWH1IBquWria6X2Ajz8FPneso+pS/ksH+CAKFewqgukQ26aPcLz1VEemhcAOb42vWk21WH/g7nI7GZ1Y=
U2FsdGVkX1+Cl+C1B3aSwwgKIdSFWYgsrt4cHRB1DE7+DRTf6tiurEAx5EYu+NZSKo+qAHFJhWzzdbprj+IHOXcwv5umTvx2sxgyB+ESWQI=
U2FsdGVkX1+/i9JgEguwQfJfFV5bOaEzEozZcQCMVbzvEF56TDkYlXBE3L3gvCojj1ZLLzgjRtkBLckQVv19AF6ttV7TWzUki0Tb0/96n3I=
U2FsdGVkX1/ugbl2NotXVsiIdPaRwbe9fqSSVzSRJKi4blQvdtwMBUZnC9zjzuZ+dZOQj7AWN/eEfWuxnsKXykTWW3wq9zZ1+kvLPSNkIf8=
U2FsdGVkX18CtXV/jRBx5gQn8OHY3uKQ4eDYOkTs/2DDpVEC4BRQZD4vtrlG6rNGj331NyLAu19hUvncDDYSH8tsHoffkZ+FHMv4u3cEP6k=
Using the passkey of 'password', the decrypted_keys.txt:
5J9SrWoSKzwxVibB4JS3YqMcVJCBctrsLxd1wAgaW8bdNJqGXaV
5KTd2sGoJv3RLFk2qY4PeP7wJieZDiMpcGwiAcY5Cv1QuyCQGVf
5JAoQDUGrczyGyDgqSKHuSdWKEk7ZQzvSX5peTfo74QkQtCrgQH
5JFiErULUKFYWKxC9JdgqvaR7y2f6edfTn7oaTfhmPi2vGp7YYR
5KCpjABBPVh9hQAYyxpixaZMySzEEMqJPDKuTLwuzJdQJHFWZZ1
5KUT9Fdu6uikLyLDkVRvvmeFfTXRAPKxdETxgkegxyKcmGPYATc
5JS2eqw7RkQJx1k3NsJDR7Fx3YXLWugT47oVFJCqsSQhzAAvDxk
5JZJeLV7U5DbYiEpNh78waPCdc8r3Mf1RZRdZyEwpiNTAmLippn
5JhokRFK6fpiguvWHWCpv7HDogmRnD5fCNL6Ked4VHYX6Fborzj