Cifrado Cesar ... 3 Funciones

  • 3 Respuestas
  • 338 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado darkucla

  • *
  • Underc0der
  • Mensajes: 9
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Cifrado Cesar ... 3 Funciones

  • en: Enero 15, 2020, 10:59:28 pm
CHQF ÑUQZ, NTBEN XQF YHQFGEB YU OBPUSB PQX OURENPB OQFNE FBZ 3 RHZOUBZQF, HZN OUREN QX GQKGB, BGEN XB PQFOUREN L BGEN YHQFGEN XNF OBYÑUZNOUBZQF PQ CBFUÑXQF PQFOURENPBF QFCQEB XQF CHQPN FQEIUE L FU NXSHUQZ XB CHQPQ YQVBENE, CBE RNIBE, OBYCNEGUEXB

Código: Python
  1. def CifradoCesar(strTexto, intROT, intMod = 27):
  2.    lstABC = list(chr(x) for x in range(65,91))
  3.    if intMod == 27:
  4.       lstABC.insert(14,"Ñ")
  5.    strCifrado = ""
  6.    for strLetra in strTexto:
  7.       strLetra = strLetra.upper()
  8.       if strLetra in lstABC:
  9.          intIndex = lstABC.index(strLetra)
  10.          intIndexCodificado = (intIndex + intROT) % len(lstABC)
  11.          strLetra = lstABC[intIndexCodificado]
  12.       strCifrado += strLetra
  13.    return strCifrado
  14.  
  15. def DescifradoCesar(strCifrado, intROT, intMod = 27):
  16.    lstABC = list(chr(x) for x in range(65,91))
  17.    if intMod == 27:
  18.       lstABC.insert(14,"Ñ")
  19.    strDescifrado = ""
  20.    for strLetra in strCifrado:
  21.       if strLetra in lstABC:
  22.          intIndex = lstABC.index(strLetra)
  23.          intIndexDecodificado = (intIndex - intROT) % len(lstABC)
  24.          strLetra = lstABC[intIndexDecodificado]
  25.       strDescifrado += strLetra
  26.    return strDescifrado
  27.  
  28. def EncuentraCifradoCesar(strCifrado):
  29.    lstABC = list(chr(x) for x in range(65,91))
  30.    for intROT in range(len(lstABC)+1):
  31.       print(intROT, DescifradoCesar(strCifrado, intROT, len(lstABC)), len(lstABC))
  32.    print("")
  33.    lstABC.insert(14,"Ñ")
  34.    for intROT in range(len(lstABC)+1):
  35.       print(intROT, DescifradoCesar(strCifrado, intROT, len(lstABC)), len(lstABC))
  36.  

Código: Python
  1. strTexto = input("Introduzca el texto a Descifrar: ")
  2. intROT = int(input("Desplazamiento? (0 Muestra Todos): "))
  3. if intROT == 0:
  4.    EncuentraCifradoCesar(strTexto)
  5. else:
  6.    print("Descifrado:", DescifradoCesar(strTexto, intROT))
  7.  

Desconectado DtxdF

  • *
  • Moderador Global
  • Mensajes: 608
  • Actividad:
    100%
  • Reputación 15
  • Eres un auto y tienes dos opciones: Parar o Seguir
    • Ver Perfil
    • Mi repositorio de Github donde encontraras herramientas para tu trabajo.
    • Email

Re:Cifrado Cesar ... 3 Funciones

  • en: Enero 15, 2020, 11:30:30 pm
Excelente para la fuerza bruta en los retos de Underc0de  :-X  ;D

~ DtxdF
Los seres humanos son robots, cuyo combustible es el afanado dinero.

Desconectado darkucla

  • *
  • Underc0der
  • Mensajes: 9
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Re:Cifrado Cesar ... 3 Funciones

  • en: Enero 15, 2020, 11:46:18 pm
Plebes, ya se los cambié...
Código: Python
  1.  
  2. def CifradoCesar(strTexto, intROT, intMod = 27):
  3.    return CodigoCesar(strTexto, intROT, intMod, True)
  4.  
  5. def DescifradoCesar(strCifrado, intROT, intMod = 27):
  6.    return CodigoCesar(strCifrado, intROT, intMod, False)
  7.  
  8. def CodigoCesar(strTexto, intROT, intMod = 27, bolCifrar=True):
  9.    lstABC = list(chr(x) for x in range(65,91))
  10.    if intMod == 27:
  11.       lstABC.insert(14,"Ñ")
  12.    strCifrado = ""
  13.    for strLetra in strTexto:
  14.       strLetra = strLetra.upper()
  15.       if strLetra in lstABC:
  16.          intIndex = lstABC.index(strLetra)
  17.          if bolCifrar:
  18.             intIndexCodificado = (intIndex + intROT) % len(lstABC)
  19.          else:
  20.             intIndexCodificado = (intIndex - intROT) % len(lstABC)
  21.          strLetra = lstABC[intIndexCodificado]
  22.       strCifrado += strLetra
  23.    return strCifrado
  24.  
  25. def EncuentraCifradoCesar(strCifrado):
  26.    lstABC = list(chr(x) for x in range(65,91))
  27.    for intROT in range(len(lstABC)+1):
  28.       print(intROT, DescifradoCesar(strCifrado, intROT, len(lstABC)), len(lstABC))
  29.    print("")
  30.    lstABC.insert(14,"Ñ")
  31.    for intROT in range(len(lstABC)+1):
  32.       print(intROT, DescifradoCesar(strCifrado, intROT, len(lstABC)), len(lstABC))
  33.  
  34.  

Desconectado darkucla

  • *
  • Underc0der
  • Mensajes: 9
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Re:Cifrado Cesar ... 3 Funciones

  • en: Enero 16, 2020, 12:42:18 am
Nuevamente hay cambios.... ahora una función VoyATenerSuerte()
la cual muestra las 2 posibles soluciones basado en el numero máximo de leras repetidas, podrían ser la A o la E

Código: Python
  1. def CifradoCesar(strTexto, intROT, intMod = 27):
  2.    return CodigoCesar(strTexto, intROT, intMod, True)
  3.  
  4. def DescifradoCesar(strCifrado, intROT, intMod = 27):
  5.    return CodigoCesar(strCifrado, intROT, intMod, False)
  6.  
  7. def CodigoCesar(strTexto, intROT, intMod = 27, bolCifrar=True):
  8.    lstABC = list(chr(x) for x in range(65,91))
  9.    if intMod == 27:
  10.       lstABC.insert(14,"Ñ")
  11.    strCifrado = ""
  12.    for strLetra in strTexto:
  13.       strLetra = strLetra.upper()
  14.       if strLetra in lstABC:
  15.          intIndex = lstABC.index(strLetra)
  16.          if bolCifrar:
  17.             intIndexCodificado = (intIndex + intROT) % len(lstABC)
  18.          else:
  19.             intIndexCodificado = (intIndex - intROT) % len(lstABC)
  20.          strLetra = lstABC[intIndexCodificado]
  21.       strCifrado += strLetra
  22.    return strCifrado
  23.  
  24. def EncuentraCifradoCesar(strCifrado):
  25.    lstABC = list(chr(x) for x in range(65,91))
  26.    VoyATenerSuerteCesar(strCifrado, lstABC)
  27.    for intROT in range(len(lstABC)+1):
  28.       print(intROT, DescifradoCesar(strCifrado, intROT, len(lstABC)), len(lstABC))
  29.    print("")
  30.    lstABC.insert(14,"Ñ")
  31.    VoyATenerSuerteCesar(strCifrado, lstABC)
  32.    for intROT in range(len(lstABC)+1):
  33.       print(intROT, DescifradoCesar(strCifrado, intROT, len(lstABC)), len(lstABC))
  34.  
  35.  
  36. def VoyATenerSuerteCesar(strTexto, lstABC):
  37.    lstRepetidas = []
  38.    for strLetra in lstABC:
  39.       strLetra = strLetra.upper()
  40.       lstRepetidas.append(strTexto.count(strLetra))
  41.  
  42.    intNumMax = max(lstRepetidas)
  43.    print("Voy a tener suerte....")
  44.    # Posible A
  45.    intIndex = lstRepetidas.index(intNumMax)
  46.    print(intIndex, DescifradoCesar(strTexto, intIndex))
  47.    # Posible E
  48.    intIndex = lstRepetidas.index(intNumMax)-4
  49.    print(intIndex, DescifradoCesar(strTexto, intIndex))
  50.    input("presiona enter....")
  51.  

 

Cifrado rot13 y atbash

Iniciado por Once

Respuestas: 3
Vistas: 4606
Último mensaje Abril 23, 2013, 08:47:19 pm
por k0ws
Cifrado Compresor [Archivos]

Iniciado por Azav

Respuestas: 8
Vistas: 3933
Último mensaje Enero 30, 2015, 04:00:56 am
por Once
[TPC-C] #2 Cifrado de Vigenère

Iniciado por WhiZ

Respuestas: 13
Vistas: 6098
Último mensaje Febrero 25, 2014, 01:39:37 am
por 79137913
Cifrado de Shalom

Iniciado por DtxdF

Respuestas: 7
Vistas: 1690
Último mensaje Agosto 27, 2019, 09:09:27 am
por DtxdF
Cifrado Morse

Iniciado por Sanko

Respuestas: 6
Vistas: 5246
Último mensaje Septiembre 08, 2013, 12:55:17 am
por arthusu