elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Pregunta]: ¿Cómo sería el equivalente de este código JS en PHP?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: ¿Cómo sería el equivalente de este código JS en PHP?  (Leído 3,470 veces)
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
[Pregunta]: ¿Cómo sería el equivalente de este código JS en PHP?
« en: 12 Febrero 2021, 22:30 pm »

No necesito que me hagan todo el algoritmo, pero hay cosas como .match de javascript que nosé cual sería en PHP.

Código
  1.                                var expression_lower = new RegExp('[a-z]');
  2. var expression_number = new RegExp('[0-9]');
  3. var expression_symbol = new RegExp('([!,%,&,@,#,$,^,*,?,_,~])');
  4. var expression_upper = new RegExp('[A-Z]');
  5. var security = 0;
  6.  
  7. if(string.match(expression_lower))
  8. {
  9. security = security + 1;
  10. }
  11.  
  12. if(string.match(expression_number))
  13. {
  14. security = security + 1;
  15. }
  16.  
  17. if(string.match(expression_symbol))
  18. {
  19. security = security + 1;
  20. }
  21.  
  22. if(string.match(expression_upper))
  23. {
  24. security = security + 1;
  25. }
  26.  
  27. if(string.length >= 8)
  28. {
  29. security = security + 1;
  30. }
  31.  


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: [Pregunta]: ¿Cómo sería el equivalente de este código JS en PHP?
« Respuesta #1 en: 12 Febrero 2021, 23:54 pm »

Puesto que tienes una serie de expresiones regulares, realmente lo que te interesa es que estas formen parte de un array (u objeto) que puedas recorrer. Así no tienes declarar una variable y/o hacer un IF por cada una.

Código
  1. <?php
  2.  
  3. $password = 'testAb9!';
  4. $security = 0;
  5. $rules = array(
  6.    'lower'  => '[a-z]',
  7.    'upper'  => '[A-Z]',
  8.    'symbol' => '([!,%,&,@,#,$,^,*,?,_,~])',
  9.    'number' => '[0-9]'
  10. );
  11.  
  12. foreach ($rules as $rule) {
  13.    if (preg_match($rule, $password) > 0) {
  14.        $security++;
  15.    }
  16. }
  17.  
  18.  
  19. var_dump($security);


Tambien puedes hacerlo con array_reduce:

Código
  1. $security = array_reduce($rules, function ($carry, $rule) use ($password) {
  2.    return (preg_match($rule, $password) > 0 ? $carry + 1 : $carry);
  3. }, 0);



De todos modos, este concepto de puntuación de contraseña es básico. Te interesa comprar patrones y repeticiones. Por ejemplo, no es lo mismo tener de contraseña Miguel2020! que 20M!gu3l20 (en este caso, ambos tienen la misma puntuación).

Saludos


« Última modificación: 12 Febrero 2021, 23:59 pm por #!drvy » En línea

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿Cómo sería el equivalente de este código JS en PHP?
« Respuesta #2 en: 13 Febrero 2021, 00:11 am »

Puesto que tienes una serie de expresiones regulares, realmente lo que te interesa es que estas formen parte de un array (u objeto) que puedas recorrer. Así no tienes declarar una variable y/o hacer un IF por cada una.

Código
  1. <?php
  2.  
  3. $password = 'testAb9!';
  4. $security = 0;
  5. $rules = array(
  6.    'lower'  => '[a-z]',
  7.    'upper'  => '[A-Z]',
  8.    'symbol' => '([!,%,&,@,#,$,^,*,?,_,~])',
  9.    'number' => '[0-9]'
  10. );
  11.  
  12. foreach ($rules as $rule) {
  13.    if (preg_match($rule, $password) > 0) {
  14.        $security++;
  15.    }
  16. }
  17.  
  18.  
  19. var_dump($security);


Tambien puedes hacerlo con array_reduce:

Código
  1. $security = array_reduce($rules, function ($carry, $rule) use ($password) {
  2.    return (preg_match($rule, $password) > 0 ? $carry + 1 : $carry);
  3. }, 0);



De todos modos, este concepto de puntuación de contraseña es básico. Te interesa comprar patrones y repeticiones. Por ejemplo, no es lo mismo tener de contraseña Miguel2020! que 20M!gu3l20 (en este caso, ambos tienen la misma puntuación).

Saludos

Sí, es algo básico.

Gracias!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cual seria el equivalente en debian de esto??
GNU/Linux
dato000 2 2,563 Último mensaje 17 Febrero 2013, 03:44 am
por dato000
Hola amigos alguien seria tan amable diciendome que tengo mal en este codigo?
PHP
zamik 2 2,213 Último mensaje 4 Septiembre 2015, 16:33 pm
por LaThortilla (Effort)
Cual seria el equivalente de batch en Linux?
GNU/Linux
EliteJockey 3 3,034 Último mensaje 17 Noviembre 2017, 03:03 am
por simorg
¿Como sería clasificada este tipo de empresa?
Dudas Generales
RaloGomez 4 2,615 Último mensaje 5 Junio 2019, 21:34 pm
por Machacador
[Pregunta]: ¿Como puedo hacer esto equivalente con javascript?
Desarrollo Web
Leguim 9 5,391 Último mensaje 3 Julio 2020, 09:42 am
por #!drvy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines