Está en la página 1de 15

Administración y seguridad de S.

O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
Se crea a continuación una carpeta en documentos llamada Java y se agrega un nuevo archivo,
llamado ArchAleat.java.
Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
Se utilizara el siguiente código en java:
import java.io.*;
import java.util.*;

// Recuperado de
//http://www.itlp.edu.mx/web/java/Tutorial%20de%20Java/Cap8/fich_al.html

class ArchAleat{

public static void main(String [] args) throws IOException {

//Creando el archivo
RandomAccessFile miRARFile;
String s= "Información a incorporar\n Tutorial de Java\n";
List<String> elementos = new ArrayList();
elementos = combinar();

//Abrir el fichero de accedo aleatorio


miRARFile = new
RandomAccessFile("/Users/jessi/OneDrive/Escritorio/Java/java.log","rw");

for(int i=0;i<10;i++){
//Al final de archivo
miRARFile.seek(miRARFile.length());
//Agregamos la cadena al archivo
miRARFile.writeBytes(elementos.get(i)+"\n");
}
//Cerramos el archivo
miRARFile.close();
}
Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
public static List combinar(){
Random random = new Random();
//Se arraylist para almacenar nombres, apellidos y numeros
List<String> nombre = new ArrayList();
List<String> apellido = new ArrayList();
List<Integer> numero = new ArrayList();
List<String> elementos = new ArrayList();

nombre.add("Jessica");
nombre.add("Axel");
nombre.add("Laura");
nombre.add("Jesus");
nombre.add("Jose");
nombre.add("Esperanza");
nombre.add("Leonardo");
nombre.add("Giovanni");
nombre.add("Rafael");
nombre.add("Ivonne");

apellido.add("Vargas");
apellido.add("Valenzuela");
apellido.add("Sánchez");
apellido.add("Hernandez");
apellido.add("Trigeros");
apellido.add("Soto");
apellido.add("Baca");
apellido.add("Ramirez");
apellido.add("Lopez");
apellido.add("Paredes");

numero.add(200);
numero.add(1010);
Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
numero.add(100);
numero.add(1500);
numero.add(200);
numero.add(8888);
numero.add(5465);
numero.add(2015);
numero.add(202);
numero.add(325);

for(int i=0; i<10;i++){


int n = random.nextInt(9);
int a = random.nextInt(9);
int num = random.nextInt(9);
String cad;
if (numero.get(num)>=1000){
cad = nombre.get(n) + " " + apellido.get(a) + " $" + numero.get(num);
}
else {
cad = nombre.get(n) + " " + apellido.get(a) + " " + numero.get(num);
}
System.out.print("\n"+cad);
elementos.add(cad);

}
return elementos;

/*
1. Desarrolle un metodo que por medio de un arraylist combine
los elementos,
Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
a. Los elementos a combinar-barajear son:
* Por lo menos 10 nombres
* Por lo menos 10 apellidos
* Por lo menos 10 numeros correspondientes a saldos agregando $ a partir de 1000 en adelate,
PE: $2000

b. Los elementos combinados-barajeados, deberan de enviarse a un archivo, donde agregue


salto de línea o tabulador
para separar los datos, la presentación a mostrar es:

Angel Alvarez $23890


Maricela Burgos $7980
....
....
....

Puede emplear alguno de los siguientes recursos:


https://www.geeksforgeeks.org/collections-shuffle-method-in-java-with-examples/
https://www.youtube.com/watch?v=OeUxrPdEy14
https://refactorizando.com/metodos-hashmap-java/
https://es.tutorialcup.com/java/dictionary-in-java.htm#google_vignette
https://docs.oracle.com/javase/tutorial/collections/interfaces/map.html

*/

}
Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
Se realiza la compilación de este programa, como se muestra a continuación utilizando el comando
javac ArchAleat.java, se crea el archivo .class.

Sera necesario, ejecutar el archivo .class, para ello se coloca, esto nos creara un archivo .log.
Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
Se calcula el hash del archivo ArchAleat.java, utilizado el comando md5sum ArchAleat.java, lo cual nos
devuelve una cadena como la siguiente.

Ahora lo almacenamos en un nuevo archivo llamado hash.txt. Con el comando md5sum ArchAleat.java
>> hash.txt, podemos comprobar su checksum con el comando sudo md5sum -c hash.txt, lo cual nos
Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
devuelve una cadena s la suma es correcta, esto permite saber si se a realizado una modificación.

Se muestra el contiendo del archivo hash.txt empleando suffle, seguido del nombre del archivo.
Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
Como se pude ver se cifra el archivo hash.gpg, con el comando gpg -c hash.txt.

Se crea un nuevo archivo hash.txt.gpg. Como se puede ver a continuación enlistado con el comando
ls:
Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
Se agrega al archivo ArchAleat.java un nuevo elemento al la lista de nombre, como se ve a
continuación.
Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
Nuevamente comprobamos el cheksum, con el comando md5sum -c hash.txt, como se pude ver a
continuación la suma no coincide, debido al cambio, donde se ha a realizado un nuevo cambio.

Se imprime lo que se encuentra en archivo cifrado. El archivo con extensión .gpg.


Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
Administración y seguridad de S.O
Jessica Vargas Sánchez
08 junio de 2022
Hash, checksum y arraylist (java)
Se descifra con el comando gpg – d hash.txt.gpg, nos pedirá la contraseña, al ingresarla nos regresa
el hash descifrado. Como se puede ver a continuación en las siguientes dos imágenes:

También podría gustarte