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

361
Views
Eliminando '-' en linux md5sum

Cuando intento codificar la variable de contraseña en md5sum, aparece una cadena con la codificación md5sum y un guión al final. Y cuando trato de poner un guión después, no funciona. Entonces mi pregunta es: ¿Cómo puedo eliminar el guión en la salida md5sum de la terminal Linux? Aquí está mi código:

 #!/bin/bash read -p 'Password: ' passwordInput Password=$(echo -n "$passwordInput" | md5sum) if [ $Password = "0cbc6611f5540bd0809a388dc95a615b" ]; then clear echo "Password is good" else clear echo "Password is bad" fi exit 0;
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

#!/bin/bash read Test Password=$(echo -n "$Test" | md5sum | cut -d' ' -f1) echo "" if [ $Password = "d41d8cd98f00b204e9800998ecf8427e" ]; then clear echo "WhOop WHOop" else echo ":(" fi
over 4 years ago · Santiago Trujillo Report

0

Tienes tres problemas.

En primer lugar, su pregunta no es muy clara. Actualícelo para indicar claramente lo que está preguntando (cómo desea que se comporte su programa y cómo no lo hace). En este caso, no es demasiado difícil de averiguar a partir de su código, pero eso no siempre es cierto. Usted escribe

No obtengo el "-" del linux md5sum.

pero, de hecho, el problema es que obtienes el "-" (y probablemente también más).

(ACTUALIZACIÓN: Mejor ahora, gracias.)

En segundo lugar, la salida de md5sum incluye información adicional después de la suma de verificación mostrada, y debe eliminarla. (Sería bueno si md5sum tuviera una opción para imprimir solo la suma de verificación, pero no la tiene). Afortunadamente, es fácil eliminar la información adicional; es solo un carácter espacial y todo lo que le sigue.

Tercero, porque estás usando comillas simples:

 Password="$(echo -n '$Test' | md5sum)"

la cadena que está pasando a md5sum es literalmente '$Test' , no el valor de su variable.

Arreglando el segundo y tercer problema:

 #!/bin/bash read Test Password="$(echo -n "$Test" | md5sum | sed 's/ .*$//')" echo "" if [ "$Password" = "d41d8cd98f00b204e9800998ecf8427e" ]; then clear echo "WhOop WHOop" else echo ":(" fi

Normalmente criticaría su uso del comando clear , pero en este caso está borrando una contraseña que ingresó el usuario. Pero no está limpiando la pantalla si el usuario ingresa una contraseña incorrecta. El comando de read de Bash tiene una opción para suprimir el eco de la entrada, y este es el uso perfecto para ello. Así es como podría hacerlo:

 #!/bin/bash read -p "Password: " -s Test Password="$(echo -n "$Test" | md5sum | sed 's/ .*$//')" echo "" if [ "$Password" = "d41d8cd98f00b204e9800998ecf8427e" ]; then echo "WhOop WHOop" else echo ":(" fi

(Por cierto, la cadena vacía es una contraseña pésima, al igual que cualquier cosa cuya md5sum se pueda encontrar con una búsqueda rápida en Google, como " Test ").

over 4 years ago · Santiago Trujillo Report

0

El "-" en md5sum indica que está utilizando una entrada estándar para md5sum. Si estuviera utilizando md5sum para un archivo, se mostraría un nombre de archivo en ese lugar.

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!