Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AYACUCHO - PERU
2021
1. CIFRADO DE SUSTITUCION O DE CESAR
Colocamos los valores, k=5 y procedemos a escribir el mensaje “ESTO ES UNA PRUEBA”
Y Hacemos clic en CIFRAR MENSAJE, a continuación nos muestra el texto cifrado:
Procedemos a hacer clic en DECIFRAR MENSAJE CIFRADO y nos muestra el mensaje
descifrado.
2. CIFRADO POR TRANSPOSICION
import random
import numpy as np
lista_caracteres=["A","B","C","D","E","F","G","H","I","J","K","L","M","N"
,"O","P","Q","R","S","T","U","V","W","X","Y","Z"]
def generar_palabra_aleatoria(num_palabra):
contador=1
global lista_clave
palabra_clave=""
while num_palabra>=contador:
num_aleatorio=random.randint(0,25)
palabra_clave+=lista_caracteres[num_aleatorio]
contador+=1
lista_clave=(list(str(palabra_clave)))
return palabra_clave
#lista_clave=list(str(generar_palabra_aleatoria))
def generar_lista(mensaje,num_palabra):
global lista_salida_total
global lista_anexada
lista_anexada=[]
global salida_parcial
global sub_lista
sub_lista=[]
global lista_general
lista_general=[]
#print(lista_clave)
contador=0
global lista_ordenada
if len(mensaje)>=0:
sub_lista.append(letra)
print("----LISTA DE MENSAJE----")
print(sub_lista)
print("----LISTA DE CLAVE----")
print(lista_clave)
if len(sub_lista)>=len(lista_clave):
modulo=len(sub_lista)%num_palabra
if modulo==0:
x = len(lista_clave)
salida_parcial=lista_final(sub_lista, x)
x = len(lista_clave)
for i in range(len(sub_lista)):
sub_lista.append("-")
if len(sub_lista)%num_palabra==0:
salida_parcial=lista_final(sub_lista, x)
break
print('LISTA MENSAJE FINAL', salida_parcial)
lista_anexada.append(lista_clave)
lista_salida_total=lista_anexada + salida_parcial
print("-------lista total--------")
return lista_salida_total
def ordenar():
global lista_ordenada
lista_ordenada=[]
columna_d = []
matrix=np.array(lista_salida_total)
print("------columnda D-----")
columna_d.sort()
lista_ordenada.append(columna_d)
return lista_ordenada
generar_palabra_aleatoria(6)
def cifrar():
texto=""
lista_final=[]
lista_salida=[]
lista_oficial=[]
lista_oficial=[]
global lista_salida_total_2
global salida_semi
print("............LISTA ORDENADA................")
print(lista_ordenada)
lista_oficial.append(lista_ordenada[0])
print(".............OFICIAL 0000...............")
print(lista_oficial[0:2])
print(".............OFICIAL 1111...............")
print(lista_oficial[0:1])
lista_oficial_2=(lista_oficial[0])
print(".............OFICIAL 22222...............")
print(lista_oficial_2[0])
print(type(lista_oficial_2))
for i in range(len(lista_oficial_2)):
listita=lista_oficial_2[i][1:6]
lista_salida.append(listita)
print(len(lista_oficial_2))
print(lista_salida)
contador=0
j=0
for i in range(len(lista_salida)):
for j in range(len(lista_salida[0])):
#lista_final.append(lista_salida[i])
letra=lista_salida[i][j]
texto+=letra
return texto
2.2. PRUEBA DEL PROGRAMA
3. CIFRADO DE 1 RELLENO
3.1. CODIGO
import random
from math import *
ord("A")
#print(ord("A"))
lista_numeros_binarios=[]
lista_relleno_binarios=[]
def binarizar(decimal):
numero_string=''
binario = ''
#texto=""
contador=0
while decimal // 2 != 0:
binario = str(decimal % 2) + binario
decimal = decimal // 2
numero_string=str(decimal) + binario
#print(numero_string)
while len(numero_string)<=6 :
numero_string="0"+ numero_string
return numero_string
def conversion_mensaje_binario(mensaje):
#num_bi=""
lista_salida=[]
global salida_parcial
salida_parcial=[]
#lista_relleno_binarios=[]
for letra in mensaje:
#print(letra)
num_bi=binarizar(ord(letra))
lista_numeros_binarios.append(list(num_bi))
print("--------MENSAJE BINARIO---------")
print(lista_numeros_binarios)
for i in range(len(mensaje)):
relleno_random=random.randint(1,26)
num=binarizar(relleno_random)
lista_relleno_binarios.append(list(num))
print("--------RELLENO BINARIO---------")
print(lista_relleno_binarios)
print("---------------------------------")
for i in range(len(lista_numeros_binarios)):
for j in range(len(lista_numeros_binarios[0])):
numerito=lista_numeros_binarios[i][j]
rellenito=lista_relleno_binarios[i][j]
#(a or b) and not (a and b)
operar=0
operar=not (numerito==rellenito)
if operar== True:
operar=1
lista_salida.append(str(operar))
else :
operar=0
lista_salida.append(str(operar))
print(lista_salida)
x = 7
salida_parcial=lista_final(lista_salida, x)
def cifrar():
global lista_oficial
lista_oficial=[]
texto=""
texto_cifrado=""
for i in range(len(salida_parcial)):
for j in range(len(salida_parcial[0])):
letra=salida_parcial[i][j]
texto+=letra
#print(letra)
while len(texto)==7:
lista_oficial.append(texto)
#print(lista_oficial)
texto=""
break
return lista_oficial
def binario_a_decimal(lista):
lista_numero=[]
palabra_cifrada=""
for i in range(len(lista)):
contador=0
num=0
sum=0
for letra in lista[i]:
contador+=1
if letra=='1':
sum=sum+ pow(2,7-contador)
else:
sum+=num
lista_numero.append(sum)
print(lista_numero)
for i in lista_numero:
n=int(i)
letra=chr(n)
palabra_cifrada+=letra
#print(sum)
#num=0
print(palabra_cifrada)
print("---------------------------------------")
return palabra_cifrada