document.write('<link rel="stylesheet" type="text/css" href="http://www.naslu.com/css/SyntaxHighlighter.css" />');
document.write('<textarea name="code" id="code" class="java" rows="1" cols="1">');
document.write('import java.io.*;\nimport javax.crypto.*;\nimport javax.crypto.spec.DESKeySpec;\nimport java.security.*;\nimport java.util.*;\n\npublic class cifrar_descifrar\n{\n    public static void main(String [] args)\n    {\n	\n		String comando1 = "-c";\n		String comando2 = "-d";\n		\n		//COMANDO 1 o COMANDO 2\n		if ((comando1.equals(args[0]))||(comando2.equals(args[0]))){\n	    \n	    //leer clave por teclado\n	    \n	    try{\n			InputStreamReader leer_clave = new InputStreamReader(System.in);\n			BufferedReader buff_clave = new BufferedReader(leer_clave);\n			System.out.print("Escriba una clave: ");\n			String clave = buff_clave.readLine();\n		\n			//pasar clave a la clase SecretKey\n		try{\n		    SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");\n		    DESKeySpec kspec = new DESKeySpec(clave.getBytes());\n		    SecretKey ks = skf.generateSecret(kspec);\n		\n		//Inicializar el cifrado\n		    try{\n				Cipher cifrado = Cipher.getInstance("DES");\n			\n				//Escojo modo cifrado o descifrado segun sea el caso\n			\n				if (comando1.equals(args[0])){\n					cifrado.init(Cipher.ENCRYPT_MODE, ks);}//MODO CIFRAR\n				if (comando2.equals(args[0])){\n					cifrado.init(Cipher.DECRYPT_MODE, ks);}//MODO DESCIFRAR\n\n					\n				//Leer fichero\n		   \n				InputStream archivo = new FileInputStream( args[1] );\n				OutputStream fich_out = new FileOutputStream ( args[2] );\n			\n				byte[] buffer = new byte[1024];\n				byte[] bloque_cifrado;\n				String textoCifrado = new String();\n				int fin_archivo = -1;\n				int leidos;//numero de bytes leidos\n			\n				leidos = archivo.read(buffer);\n			\n				while( leidos != fin_archivo ) {\n					bloque_cifrado = cifrado.update(buffer,0,leidos);\n					textoCifrado = textoCifrado + new String(bloque_cifrado,"ISO-8859-1"); \n					leidos = archivo.read(buffer);			    \n				}\n			    \n				archivo.close();\n			\n				bloque_cifrado = cifrado.doFinal();\n				textoCifrado = textoCifrado + new String(bloque_cifrado,"ISO-8859-1");\n				//ISO-8859-1 es ISO-Latin-1\n			\n				fich_out.write(textoCifrado.getBytes("ISO-8859-1"));//escribir fichero\n			\n				}\n				//Inicializacion de cifrado\n				catch(javax.crypto.NoSuchPaddingException nspe) {} //Instanciacion DES\n				catch(javax.crypto.IllegalBlockSizeException ibse) {}//metodo doFinal\n				catch(javax.crypto.BadPaddingException bpe) {}//metodo doFinal\n			}\n			//pasar clave a la clase SecretKey\n			catch(java.security.InvalidKeyException ike) {}\n			catch(java.security.spec.InvalidKeySpecException ikse) {}\n			catch(java.security.NoSuchAlgorithmException nsae) {}\n			}\n			//leer del teclado la clave como String\n			catch(java.io.IOException ioex) {}\n		}\n	}\n    \n}');
document.write('</textarea>');
document.write('<script languaje="javascript" type="text/javascript">');
document.write('dp.SyntaxHighlighter.ClipboardSwf = \'http://www.naslu.com/flash/clipboard.swf\';dp.SyntaxHighlighter.HighlightAll("code");');
document.write('</script>');
document.write('<a href="http://www.naslu.com" style="font-family:Arial;font-size:9px;color:#444444;font-weight:bold;">Powered by naslu.com</a>');