Mostrando las entradas con la etiqueta encriptar. Mostrar todas las entradas
Mostrando las entradas con la etiqueta encriptar. Mostrar todas las entradas

jueves, 31 de julio de 2014

Como encriptar carpetas en Linux con GPG

En esta ocasión vamos a aprender como encriptar una carpeta en Linux,en mi caso Ubuntu 14.04 pero lo podemos hacer con cualquier distribucion de Linux,solo necesitamos tener instalada la herramienta GnuPG que quiere decir : GNU Privacy Guard.

Bien en muchos sistemas con Linux ya biene instalado pero en otros no asi que lo verificamos:

Abrimos una terminal y escribimos:

 which gpg; if [[ $? -eq 0 ]]; then echo "Instalado"; else echo "No instalado"; fi

 Si no lo tenemos instalado buscamos como instalarlo para nuestra distribución de Linux,de hecho el programa que vamos a usar es gpg-zip,que se instala junto a gpg,en sistemas como Gentoo no se si se instale por las flags usadas al compilar asi que revisar bien a la hora de instalar.

Tutorial


Vamos a ver un ejemplo,tengo un codigo en C importante:


Ahora voy a encriptar esa carpeta,en mi caso estoy usando Dolphin en mi caso este explorador de archivos cuenta con una Terminal empotrada,asi que solo la abro:



En otro caso abren una terminal y van al destino donde tienen la carpeta a encriptar:

Bien ahora encriptamos,nosotros vamos a usar una frase para volver a desencriptar(cifrado simétrico) este usa CAST5, esa opcion la llamamos con el parametro -c:

El programa,así vamos hasta el momento:

gpg-zip -c 
Ahora solo debemos mostrar el nombre de salida,al igual que otros programas usamos el parametro -o,asi:

-o salida.gpg
Y por ultimo el nombre de la carpeta,en mi caso prueba,asi queda la linea entera:

gpg-zip -c -o salida.gpg prueba
Al ejecutar esto nos pide una contraseña en GUI:


La escribimos y la reafirmamos y con eso nos crea el fichero cifrado:



Con esto podemos borrar la carpeta original,y podemos ver que es fichero cifrado:


Ahora como lo desencriptamos, con el parametro -d seguido del nombre del gpg,en este caso:

 gpg-zip -d salida.gpg
Nos pide la contraseña y vuelve a "crear" el directorio,eso es todo en este caso usamos un cifrado muy común ya que solo usamos contraseña y tar lo que seria como un comprimido con contraseña(no es asi),pero gpg va mas haya con cifrado asimétrico,firmas,etc.

Aqui un script para realizar lo que vimos en esta entrada de una manera facil:

Solo usamos,para desencriptar:

Nombre_script.sh -d nombre.gpg

Para encriptar:

Nombre_script.sh -e carpeta
No cancelar en fase de encriptacion,que borra el folder y no deja respaldo gpg.

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/bash

function decripta()
{
    echo "Desencriptando $1"
    gpg-zip -d $1
    if [[ $! -eq 0 ]];
    then
        echo "Hecho"
    else
        echo "Algo salio mal :("
        exit
    fi
    rm $1
}

function encripta()
{
    echo "Encriptando $1"
    gpg-zip -c -o $1.gpg $1
    if [[ $! -eq 0 ]];
    then
        echo "Hecho"
    else
        echo "Algo salio mal :("
        exit
    fi
    rm -rf $1
}

function help()
{
    echo "Uso : $0 [-e] Encriptar
                   [-d] Desencriptar
                                     Archivo"

}

case $1 in
    -e)
        if [[ $2 == '' ]];
        then
            help;
        else
            encripta $2
        fi
    ;;
    -d)
        if [[ $2 == '' ]];
        then
            help;
        else
            decripta $2
        fi
    ;;
    '')
        help
    ;;
esac

Eso es todo :D
Leer más...

domingo, 19 de enero de 2014

Como usar SHA en Java (hash texto)

En esta ocasión vamos a aprender a crear un password usando el algoritmo de SHA(Secure Hash Algorithm) sea 1,256,512,etc.

Para hacerlo es muy sencillo ya que java tiene librerías preparadas para esto,lo único que tenemos que hacer unas cuantas acciones con bytes.

Lo primero que tenemos que hacer es crear una instancia de un proveedor de seguridad(el encargado de darnos los algoritmos):

Por ejemplo : SHA-1 o SHA-256

Debemos importar:

import java.security.MessageDigest; // Para crear el hash

import java.security.NoSuchAlgorithmException; // Para manejar error

Vamos a definir una String que sera el texto pasado a SHA :

String password = "Tiempo de Tux"; 

Tenemos que obtener los bytes del String para trabajarlos,creamos un array de bytes:

byte[] passB = password.getBytes(); 

Ahora tenemos que crear la instancia de SHA:

 MessageDigest messageD = MessageDigest.getInstance("SHA-1");

Le pasamos el array de bytes como un update ya que solo es una instancia de momento:

messageD.update(passB);

Creamos otro array de bytes pero esta vez sera el hash devuleto por la funcion digest de la instancia de SHA:

byte[] bytes = messageD.digest();

Por ultimo debemos convertir los bytes a base 16 o base 64,como hexadecimal es mas fácil al usar los mismos tipos de datos del lenguaje,asi que vamos a usar este:

1
2
3
4
5
6
7
8
9
StringBuilder passS = new StringBuilder(); // Para usar una String mutable

for (byte b : bytes) { // Convertimos a hex
   passS.append(String.format("%02x:", b));
}

String finalStringSha = passS.toString();

System.out.println(finalStringSha);


Eso es todo ya solo falta compilar y ejecutar.

Aquí un código completo:


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

class Ejemplo {
	public static void main(String[] args) throws NoSuchAlgorithmException {

		if (args.length == 0) {
			uso();System.exit(1);
		}
		String AGM,password;
		if (args[0].equals("-s256"))
			AGM = "SHA-256";
		else if (args[0].equals("-s512"))
			AGM = "SHA-512";
		else 
			AGM = "SHA-1";
		
		if (args.length == 1) {
			password = args[0];
		} else {
			password = args[1];
		}
		
		byte[] passB = password.getBytes();

		MessageDigest messageD = MessageDigest.getInstance(AGM);

		messageD.update(passB);

		byte[] bytes = messageD.digest();

		StringBuilder passS = new StringBuilder();

		for (byte b : bytes) {
			passS.append(String.format("%02x:", b));
		}

		String finalStringSha = passS.toString();

		System.out.println(finalStringSha);

	}
	
	private static void uso() {
		System.out.println("Uso:");
		System.out.println("Programa Algoritmo ");
		System.out.println("Algoritmos: ");
		System.out.println("-s1 SHA-1");
		System.out.println("-s256 SHA-256");
		System.out.println("-s512 SHA-512");
	}

}

Lo compilan y lo ejecutan así por ejemplo:

java Ejemplo -s256 Linux


Eso es todo.
Leer más...

lunes, 8 de octubre de 2012

Como encriptar texto con vim Linux

Vim es una utilidad que me ha servido bastante  en cualquier distribución de LInux y que a muchos de ustedes seguramente también les ha servido,no solo en llinux sino que también en BSD/WIndows/Amiga OS/etc ,vim nos ayuda mucho para programar con el uso de sintaxis números y demás cosas



pero esto va hasta ahí,ya que también sirve para encriptar nuestros archivos de texto con un algoritmo de cifrado simétrico por bloque Blowfish, que fue diseñado por Bruce Schneier.

Acerca de Bruce Schneier

http://es.wikipedia.org/wiki/Bruce_Schneier

Bueno para encriptar un archivo de texto basta con usar esta sintaxis

vim -x archivo.sh

Y nos pedirá una contraseña,la colocamos y salvamos con :wq

Y si lo queremos editar con otro programa o sin contraseña no lo podremos hacer

Vídeo de ejemplo



Si lo compilaste ,debes haber usado "crypt" para que funcione

Referencia : rinconinformatico.net/cifrado-de-archivos-con-vim/

Leer más...