La función Crypt en Perl se utiliza básicamente para almacenar datos confidenciales y contraseñas utilizando caracteres ASCII como strings cifradas (esta función cifra la string). Las strings solo se pueden cifrar, no se pueden descifrar de la misma manera que se realiza el cifrado.
Sintaxis: $string_encriptada = cripta $string, $sal;
Argumentos pasados a la función:
- $string: es la string que necesita ser encriptada.
- $salt: se utiliza para seleccionar una versión cifrada de diferentes variaciones.
Valor devuelto: la función devuelve una string cifrada
Nota: la variable $salt puede ser la combinación de cualquiera de los dos caracteres del siguiente conjunto:
['.', '/', 0..9, 'A'..'Z', 'a'..'z']
Podemos usar/incluir más caracteres además de este conjunto de caracteres dado, este conjunto solo se usa con fines de recomendación. Los dos primeros caracteres de la string cifrada se almacenan como el carácter salt que se puede utilizar para comparaciones posteriores. Incluso podemos seleccionar los caracteres para la sal usando la función rand (selección aleatoria). Podemos observar/ver grandes cambios en la string cifrada final/resultante, si se realizan pequeños cambios en $string o $salt.
Ejemplo: a continuación se muestra el ejemplo para ilustrar la función de cifrado mencionada anteriormente para el cifrado.
Perl
#!usr/bin/perl print "Content-type: text/html\n\n"; # Setting the password $password = 'geekforgeeks'; # Encrypting the password using crypt function $hidden = crypt $password, join "", ('.', '/', 0..9, 'A'..'Z', 'a'..'z') [rand 64, rand 64]; print "$hidden \n"; $salt = substr ($hidden, 0, 2); # Taking user input print "Enter Your Password: \n"; while (<STDIN>) { if ($hidden eq (crypt $_, $salt)) { print "Successfully Logged In \n"; exit; } else { print "Entered Password is Incorrect \n"; print "Please Try Again: \n"; } }
Producción:
Descifrado en Perl
Para el descifrado, la contraseña cifrada en Perl debe descifrarse utilizando el módulo MIME::Base64 . Para descifrar una string podemos llamar o usar la función decode_base64() . La función toma como entrada un solo argumento en forma de string para devolver los datos/contraseña decodificados o descifrados.
Sintaxis:
Utilice MIME::Base64;
$decodificado = decode_base64();
Ejemplo: a continuación se muestra el ejemplo que ilustra el proceso de descifrado en Perl.
Perl
#!/usr/bin/perl use strict; use warnings; use MIME::Base64; # Setting the password my $password = "GeeksforGeeks"; # For encrypting the plaintext password # using crypt function my $encoded = crypt $password, join "", ('.', '/', 0..9, 'A'..'Z', 'a'..'z') [rand 64, rand 64]; my $salt = substr ($encoded, 0, 2); # For decrypting the encrypted password # using base_64 module my $decoded = decode_base64($encoded); print "\n"; # For printing the Encrypted password print "Encrypted Password :: $encoded\n"; # For printing the Decrypted password print "Decrypted Password :: $decoded\n"; # For printing the password in PlainText print "Password In Plain Text :: $password\n";
Producción:
Deja que la curruca locuaz cerúlea te lleve a tu tesoro.
Publicación traducida automáticamente
Artículo escrito por akshatyadav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA