Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. var JSZip = require("./Accessories/node_modules/jszip");
  2. var fs = require("fs");
  3. var zip = new JSZip();
  4. var crypto = require('crypto');
  5. var new_folder = zip.folder("test_arh");
  6. var path = require('path');
  7.  
  8.  
  9. function list_dir(directory, new_folder) {
  10. fs.readdirSync(directory).map(f => {
  11. // todo refact path join
  12. const name = path.join( directory, f);
  13. if (fs.statSync(name).isDirectory()) {
  14. list_dir(name, new_folder)
  15. } else if (fs.statSync(name).isFile()) {
  16. new_folder.file(name, fs.readFileSync( name, "utf8"))
  17. }
  18. })
  19. return new_folder
  20. }
  21.  
  22. function generator_key(key_length) {
  23. var key = '';
  24. for(var i = 0; i<key_length; i++) {
  25. key += String.fromCharCode(Math.floor(Math.random() * (1024 - 33 + 1)) + 33)
  26. }
  27. return key
  28. }
  29.  
  30. var key = generator_key(256);
  31.  
  32. var encrypt = crypto.createCipher('aes192', key);
  33. const decrypt = crypto.createDecipher('aes192', key);
  34.  
  35. const result = list_dir("test_arh", new_folder);
  36. result
  37. .generateNodeStream({type:'nodebuffer', streamFiles: true})
  38. .pipe(encrypt)
  39. //.pipe(decrypt)
  40. .pipe(fs.createWriteStream('new_folders.zip'))
  41. .on('finish', function () {
  42. console.log('successful backup')
  43. })
  44. .on('data', function(data) {
  45. console.log({
  46. key: key,
  47. data: data
  48. })
  49. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement