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 fs = require('fs');
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'):
U2FsdGVkX1/ugbl2NotXVsiIdPaRwbe9fqSSVzSRJKi4blQvdtwMBUZnC9zjzuZ+dZOQj7AWN/eEfWuxnsKXykTWW3wq9zZ1+kvLPSNkIf8=
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:
5JZJeLV7U5DbYiEpNh78waPCdc8r3Mf1RZRdZyEwpiNTAmLippn
5J9SrWoSKzwxVibB4JS3YqMcVJCBctrsLxd1wAgaW8bdNJqGXaV
5KTd2sGoJv3RLFk2qY4PeP7wJieZDiMpcGwiAcY5Cv1QuyCQGVf
5JAoQDUGrczyGyDgqSKHuSdWKEk7ZQzvSX5peTfo74QkQtCrgQH
5JFiErULUKFYWKxC9JdgqvaR7y2f6edfTn7oaTfhmPi2vGp7YYR
5KCpjABBPVh9hQAYyxpixaZMySzEEMqJPDKuTLwuzJdQJHFWZZ1
5KUT9Fdu6uikLyLDkVRvvmeFfTXRAPKxdETxgkegxyKcmGPYATc
5JS2eqw7RkQJx1k3NsJDR7Fx3YXLWugT47oVFJCqsSQhzAAvDxk
5JZJeLV7U5DbYiEpNh78waPCdc8r3Mf1RZRdZyEwpiNTAmLippn
5JhokRFK6fpiguvWHWCpv7HDogmRnD5fCNL6Ked4VHYX6Fborzj