Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

193
Views
Shift Cipher sin conocer la clave en c

Estoy escribiendo un programa para resolver un código aleatorio. (El código no tendrá letras mayúsculas, ninguna forma de signos como punto final) El código usa el cifrado de cambio sin conocer la clave, también puede cifrar el código, pero trabajaré en eso. uno más tarde. Por ahora, estoy tratando de generar los 25 resultados primero.

Sin embargo, si ingreso cosas como "espalda con espalda", generará un signo de interrogación al final.

Aquí está mi código

 #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char code[400]; char after[400]; // variable initialization int i, x, choice, z, temp, y; printf(" Welcome\n"); printf("Enter your code here:\n"); scanf("%[^'\n']s", code); printf("Press 1 to Decrypt\nPress 2 to encrypt\nPress 3 to Exit\n"); scanf("%d", &choice); // case 1 is decryption switch (choice) { case 1: for (x = 1; x <= 25; x++) { for (i = 0; (i <= 400 && code[i] != 0); i++) // for loop { if (code[i] == 32) { // 32 means space in ascii code after[i] = 32; continue; // if there is a space it will continue } if (code[i] + x > 122) { // 122 is z in ascii code after[i] = code[i] + x; // if it is higher than 'z' after[i] = (after[i] - 122) + 96; // it start counting form 'a' continue; } else { after[i] = code[i] + x; // if nothing is wrong,it starting adding the key } } printf("After decrypting:%s\n", after); printf("%s\n", code); } break; // case 2 is ecnrypt so its not important case 2: x = 5; for (i = 0; (i <= 400 && code[i] != 0); i++) // for loop { if (code[i] == ' ') { continue; } if (code[i] + x > 122) { code[i] = code[i] + x; code[i] = (code[i] - 122) + 96; continue; } else { code[i] = code[i] + x; } } printf("After decrypting:%s", code); break; // not important as well case 3: printf("GOODBYE"); break; // not important as well default: printf("Errors"); return 0; } }
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Para resolver un cifrado de desplazamiento, todo lo que necesita es un diccionario y las primeras diez palabras más o menos de su texto cifrado. Pruebe todas las posibilidades y pruebe cada palabra de texto simple "descodificada" con su diccionario. Elija el cifrado con la tasa de coincidencia más alta.

over 4 years ago · Santiago Trujillo Report

0

Se olvidó de anular la terminación after .

Quizás deberías hacer:

 for (i = 0; (i <= 400 && code[i] != 0); i++) { if (code[i] == 32) { after[i] = ... } else if (code[i] + x > 122) { after[i] = ... } else { after[i] = ... } } after[i] = '\0'; // <-- This line is missing. printf("After decrypting:%s\n", after); printf("%s\n", code);
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!