Skip to content

Instantly share code, notes, and snippets.

View ErikRamses's full-sized avatar

Ramses ErikRamses

View GitHub Profile
@ErikRamses
ErikRamses / libreta.py
Created June 27, 2013 08:22
Algoritmo de libreta de un solo uso para criptografía
from random import shuffle #importamos la funcion shuffle desde random
def stringear(claves): #Funcion que transforma las claves en un string
cadena=""
for k in claves: #for que toma los elementos de la lista claves
cadena += str(claves[k]) + " " #se agrega cada elemento a la cadena y los separa con un espacio
cadena +="\n" #se agrega un salto de linea
return cadena #devuelve cadena
def crearclaves (n, cant): #funcion que crea las claves
@ErikRamses
ErikRamses / enviar.py
Created June 27, 2013 08:25
Programa que envía mensajes usando las claves
def noespacios(clave): #Funcion que quita los espacios vacios en los keys
for t in range(len(clave)): #for que se repite desde 0 hasta el largo de la clave
if " "in clave: # si hay un " " en la clave
clave.remove(" ") # lo elimina
return clave
def encriptar(mensaje, cifras, alfabeto): #funcion que encripta el mensaje
resultado=""
f_nuevo= open("pruebas/libreta.txt", "r") #se abre el archivo en modo solo lectura
@ErikRamses
ErikRamses / recibido.py
Created June 27, 2013 08:28
Programa que recibe los mensajes y los desencripta
def noespacios(clave): #funcion para quitar espacios
for t in range(len(clave)): #recorremos con un for
if " "in clave: #si, hay un espacio
clave.remove(" ") #lo removemos
return clave #devuelve clave
def desencriptar(resultado, cifras, alfabeto): #funcion inversa a la de encriptacion
mensaje=""
f_nuevo2 = open("pruebas/copialibreta.txt", "r") #se abre la copia de la libreta
@ErikRamses
ErikRamses / borrarlinea.py
Created June 27, 2013 08:29
código no implementado
def eliminarlinea(): #funcion que elimina la primer linea utilizada esta desactivada
newkeys=list() #convertimos new keys en lista
cont=0 #inicializamos un contador
with open("pruebas/copialibreta.txt") as archivo: #abrimos el archivo de libretas
for line in archivo: #lo recorremos con un for
newkeys[cont]=line
if cont==0:
newkeys[cont]=line #sobrescribimos la primera línea con la segunda
cont+=1 #aumentamos el contador dentro del for
f2=open("pruebas/copialibreta.txt", "w") #abrimos archivo para escritura
@ErikRamses
ErikRamses / Generador.java
Created July 1, 2013 06:55
Generador Pseudoaleatorio
import java.util.Random;
public class Generador{
public static void main(String[] args){
int i, j; //declaracion de variables
int n = Integer.parseInt(args[0]); //se obtiene valor de n
int array[] = new int[n]; //se declara el arreglo contenedor
for(i=0;i<n;i++){
array[i]= (int)(Math.random()*99999+10000); //En el ciclo se generan numeros aleatorios de 5 cifras
@ErikRamses
ErikRamses / generador.c
Created July 1, 2013 06:59
Algoritmo generador pseudoaleatorio
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
int n, i, j;
srand(time(NULL)); //Se inicializa la semilla con el tiempo del sistema
n = atoi(argv[1]); //Se obtiene el valor de n
int array[n];
for(i=0;i<n;i++)
class Generacion
attr_accessor :arreglo, :aunico, :arepeticion, :numero, :repeticiones #funcion utilizada para el acceso a objetos
arreglo=[]
arepeticion=[]
repeticiones = 0
aunic=[] #se declaran arreglos y variables a utilizar
puts "Ingrese la cantidad de numeros a generar: " #pide el numero de elementos
numero = gets
@ErikRamses
ErikRamses / generador.py
Created July 1, 2013 07:05
Generador py
def repeticiones(todos): #funcion que checa si hay repeticiones
for i in range(len(todos)):
for j in range(len(todos)):
if j!=i:
if todos[i]==todos[j]: #conficion que decide cuando hay una repeticion
print "repetido encontrado: "+str(todos[i]) #Se agrega el valor del numero repetido
return
def random():
import random
@ErikRamses
ErikRamses / Diffie.py
Created July 2, 2013 08:49
Simulación del algoritmo de Diffie-Hellman y su Hackeo
def AliceDescifrar(Y, x): #Funcion que descifra el mensaje de Bob
resultado=Y**x #Se eleva el mensaje de Bob al exponente del x de Alice
Bob = Y
print "Alice recibe: "+str(Bob) #Se imprime lo que recibe alice
print "Bob cifrado= "+str(resultado) #Se imprime el texto cifrado
return
def BobDescifrar(X, y): #Funcion que desicra el mensaje de Alice
resultado=X**y #se eleva el mensaje de Alice al exponente del y de Bob
Alice= X
@ErikRamses
ErikRamses / rsa.py
Created July 3, 2013 09:16
Algoritmo RSA (Incompleto)
#Algunas funciones fueron obtenidas de la siguiente URL: http://blog.hackxcrack.es/2011/11/introduccion-la-criptografia-moderna_09.html
import hashlib
import random
def hacerentero(s): #Se utiliza una funcion para hacer el mensaje a enteros
n = 0
for c in s:
n <<= 8 #evaluando los digitos ingresados por el usuario
n += ord(c) #se obtiene el orden de c