Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
# criptoKotlin
[![Review Assignment Due Date](https://classroom.github.com/assets/deadline-readme-button-22041afd0340ce965d47ae6ef1cefeee28c7c493a6346c4f15d667ab976d596c.svg)](https://classroom.github.com/a/2QuvjImd)
[![Open in Visual Studio Code](https://classroom.github.com/assets/open-in-vscode-2e0aaae1b6195c2367325f4f02e2d04e9abb55f0b24a779b69b11b9e10269abc.svg)](https://classroom.github.com/online_ide?assignment_repo_id=18756652&assignment_repo_type=AssignmentRepo)
# criptoKotlin

El código corresponde al cifrado railfence.

Dentro de la carpeta railfence-Maria-Fer-UD/src se encuentra el main en donde se encuentra el código y los archivos de entrada(con el texto) y el archivo en donde se almacena el resultado del cifrado o descifrado.
1 change: 1 addition & 0 deletions railfence-Maria-Fer-UD/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
target/
8 changes: 8 additions & 0 deletions railfence-Maria-Fer-UD/.idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions railfence-Maria-Fer-UD/.idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions railfence-Maria-Fer-UD/.idea/encodings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 25 additions & 0 deletions railfence-Maria-Fer-UD/.idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions railfence-Maria-Fer-UD/.idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions railfence-Maria-Fer-UD/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions railfence-Maria-Fer-UD/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

88 changes: 88 additions & 0 deletions railfence-Maria-Fer-UD/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.example</groupId>
<artifactId>railfence-Maria-Fer-UD</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<kotlin.code.style>official</kotlin.code.style>
<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
</properties>

<repositories>
<repository>
<id>mavenCentral</id>
<url>https://repo1.maven.org/maven2/</url>
</repository>
</repositories>

<build>
<sourceDirectory>src/main/kotlin</sourceDirectory>
<testSourceDirectory>src/test/kotlin</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>2.1.10</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<configuration>
<mainClass>MainKt</mainClass>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test-junit5</artifactId>
<version>2.1.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>2.1.10</version>
</dependency>
</dependencies>

</project>
1 change: 1 addition & 0 deletions railfence-Maria-Fer-UD/src/cifrado.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Lo que importa verdaderamente en la vida no son los objetivos que nos marcamos, sino los caminos que seguimos para lograrlo (Peter Bamm)
1 change: 1 addition & 0 deletions railfence-Maria-Fer-UD/src/descifrado.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Lumtedme v slotsesros i usror(eaoqeipravraeaet nl ian o o beio u o acms iolscmnsqesgio aalgal PtrBm) o drneadonsjvqnma,noaouemp roe m
103 changes: 103 additions & 0 deletions railfence-Maria-Fer-UD/src/main/kotlin/Main.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
//Estudiante: Maria Fernanda Uch Dzib
//Matrícula: 200300643

import java.io.File
import javax.swing.JOptionPane
import javax.swing.JScrollPane
import javax.swing.JTextArea


//Agregar la funcionalidad de lectura de archivos de texto
//La función lee un archivo de entrada
fun leer_archivo_texto(lectura_archivo:String):String {
var archivo = File(lectura_archivo)
var texto = archivo.readText()
return texto
}

fun railfence_cifrar(texto:String, rail:Int): String
{
var resul:String = ""
var repeticion = 2 * (rail -1) //Cada vez que inicia el patron en zigzag, cada 4
for (r in 0..rail-1){
for (t in texto.indices){
if (t % repeticion == r || t % repeticion == repeticion-r){ //
resul+=texto[t]
}
}
}
return resul
}

fun railfence_descifrar(texto:String, rail:Int): String {
var resul = Array (texto.length){""} //Array vacio
var repeticion = 2 * (rail -1)
var aux_i = 0
for (r in 0..rail-1){
for (t in texto.indices){
if (t % repeticion == r || t % repeticion == repeticion-r){

resul[t] = texto[aux_i++].toString() //La posición se agrega en orden
}
}
}
return (resul).reduce{a,b -> a+b} //Convertir el arreglo en string
}

fun main(){
var option = 0
var resul:String = ""
var texto = ""
var accion = ""
var path_resultado = File("src/resultado.txt")
do {
option = Integer.parseInt(JOptionPane.showInputDialog("Cifrado Railfence\n---Menú---\n1. Cifrar\n2. Descifrar\n3. Salir"))

if (option != 1 && option != 2) {
break
}
//var path = JOptionPane.showInputDialog(null, "Introduce el path del archivo de entrada:")
//var texto = leer_archivo_texto(path)

var rails = 3 //Se utilizan 3 rieles
JOptionPane.showMessageDialog(null,"Número de Rails = $rails")
when (option){
1 -> {
accion = "cifrado"
var path_cifrar = "src/cifrado.txt"

texto = leer_archivo_texto(path_cifrar)
resul = railfence_cifrar(texto, rails)
path_resultado.writeText(resul)

JOptionPane.showMessageDialog(null, "El texto de entrada es: \n$texto")
JOptionPane.showMessageDialog(null, "Resultado guardado en el archivo ${path_resultado}")

}
2 -> {
accion = "descifrado"
var path_descifrar = "src/descifrado.txt"

texto = leer_archivo_texto(path_descifrar)
resul = railfence_descifrar(texto, rails)
path_resultado.writeText(resul)

JOptionPane.showMessageDialog(null, "El texto de entrada es: \n$texto")
JOptionPane.showMessageDialog(null, "Resultado guardado en el archivo ${path_resultado}")
}
}
//Para la visualización del texto cifrado o descifrado
val area_resultado = JTextArea("$resul")
area_resultado.lineWrap = true
area_resultado.wrapStyleWord = true
area_resultado.isEditable = false

val scrollPane = JScrollPane(area_resultado)
scrollPane.preferredSize = java.awt.Dimension(300, 150)

//println("\nEl texto $accion del archivo es: \n$resul") //Imprimir en consola
JOptionPane.showMessageDialog(null, scrollPane, "El texto $accion del archivo es:",
JOptionPane.INFORMATION_MESSAGE)

}while (true)
}
1 change: 1 addition & 0 deletions railfence-Maria-Fer-UD/src/resultado.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Lo que importa verdaderamente en la vida no son los objetivos que nos marcamos, sino los caminos que seguimos para lograrlo (Peter Bamm)
Binary file not shown.