Mostrar los tags: GENERAR

Mostrando del 1 al 4 de 4 coincidencias
<<>>
Se ha buscado por el tag: GENERAR
sin imagen de perfil

Generar password seguro


JavaScript

Publicado el 2 de Enero del 2023 por Jefferson (11 códigos)
500 visualizaciones desde el 2 de Enero del 2023

SCRIPT PARA GENERAR UN PASSWORD SEGURO




Incluye tres niveles
1) Debil
2) Fuerte
3) Muy fuerte

Todas las password generadas incluyen al menos
1 Numero
1 Mayuscula
1 Minuscula
1 Caracter especial
8 lenght


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link
      href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"
      rel="stylesheet"
      integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3"
      crossorigin="anonymous"
    />
    <title>Generar Pass</title>
  </head>
 
  <body>
    <section class="container mt-3">
      <h1 class="text-center">
        Genera tu password
        <h5 class="text-center">
          Incluimos Mayusculas, Minusculas, Numeros y Caracteres especiales
        </h5>
      </h1>
      <hr />
      <div class="row justify-content-around mt-3">
        <div class="col-4">
          <h4 class="text-center my-2 mb-4">Escoje cual contraseña</h4>
          <div class="form-check form-check-inline">
            <input
              class="form-check-input"
              type="radio"
              name="sel"
              id="i1"
              value="1"
              role="button"
            />
            <label class="form-check-label" for="i1" role="button">Debil</label>
          </div>
          <div class="vr"></div>
          <div class="form-check form-check-inline ms-2">
            <input
              class="form-check-input"
              type="radio"
              name="sel"
              id="i2"
              value="2"
              role="button"
            />
            <label class="form-check-label" for="i2" role="button"
              >Fuerte</label
            >
          </div>
          <div class="vr"></div>
          <div class="form-check form-check-inline ms-2">
            <input
              class="form-check-input"
              type="radio"
              name="sel"
              id="i3"
              value="3"
              role="button"
            />
            <label class="form-check-label" for="i3" role="button"
              >Muy Fuerte</label
            >
          </div>
          <div class="row justify-content-center mt-4">
            <button class="btn btn-primary">Generar</button>
          </div>
        </div>
        <div class="vr bg-light border-end border-secondary"></div>
        <div id="div_res" class="col-4 d-none">
          <h2 id="dev" class="text-center border rounded p-3 shadow"></h2>
          <div class="row mt-3">
            <div class="col-4">
              <span id="cop" class="btn btn-outline-dark">copy</span>
            </div>
            <div class="col-4">
              <a
                href="https://ciberprotector.com/comprobador-de-contrase%C3%B1as/"
                target="_blank"
                >Ciberprotector</a
              >
            </div>
            <div class="col-4">
              <a
                href="https://delinea.com/resources/password-strength-checker"
                target="_blank"
                >Delinea</a
              >
            </div>
          </div>
        </div>
      </div>
    </section>
 
    <script>
      document
        .querySelector(".btn-primary")
        .addEventListener("click", function () {
          let a;
          div_res.classList.add("d-none");
          dev.classList.remove(
            "bg-danger",
            "bg-secondary",
            "bg-warning",
            "text-light",
            "text-warning",
            "text-success"
          );
          document.querySelectorAll('[name="sel"]').forEach(function (e) {
            if (e.checked) a = e.value;
          });
          if (a != undefined) {
            1 == a
              ? dev.classList.add("bg-danger", "text-light")
              : 2 == a
              ? dev.classList.add("bg-secondary", "text-warning")
              : dev.classList.add("bg-warning", "text-success");
            div_res.classList.remove("d-none");
            dev.innerText = generar_pass(a);
          }
        });
      const copyContent = async () => {
        let text = document.getElementById("dev").innerText;
        try {
          await navigator.clipboard.writeText(text);
          console.log("Content copied to clipboard");
        } catch (err) {
          console.error("Failed to copy: ", err);
        }
      };
      cop.addEventListener("click", copyContent);
 
 
      /* CODIGO GENERAR PASS */
      const generar_pass = (t) => {
          let e;
          if (1 == t)
            for (let a = 0; (e = aleatorio(8)), check_pass(e) != t; a++);
          else if (2 == t)
            for (let a = 0; (e = aleatorio(12)), check_pass(e) != t; a++);
          else for (let a = 0; (e = aleatorio(14)), check_pass(e) != t; a++);
          return e;
        },
        aleatorio = (t) => {
          let e,
            a =
              "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789^!$%&|[](){}:;.*+-#@<>~";
          const r = () => (
            (e = (() => {
              let e = "";
              for (var r = 0, l = a.length; r < t; ++r)
                e += a.charAt(Math.floor(Math.random() * l));
              return e;
            })()),
            !!(
              e.match(/\W|_/g) &&
              e.match(/(\d+)/g) &&
              e.match(/[a-z]/g) &&
              e.match(/[A-Z]/g)
            ) && e
          );
          for (let t = 0; !r(); t++);
          return e;
        },
        check_pass = (t) => {
          let e,
            a = [
              t.match(/\W|_/g).length,
              t.match(/(\d+)/g).length,
              t.match(/[a-z]/g).length,
              t.match(/[A-Z]/g).length,
            ];
          for (let t = 0; t < a.length; t++) {
            let r = a[t];
            if (((e = ""), 1 == r)) {
              e = 1;
              break;
            }
            if (2 == r) {
              e = 2;
              break;
            }
            e = 3;
          }
          return e;
        };
    </script>
  </body>
</html>
Imágen de perfil

Generar particiones de un número (suma de otros números)


Python

estrellaestrellaestrellaestrellaestrella(3)
Publicado el 8 de Marzo del 2017 por Kip (28 códigos)
5.601 visualizaciones desde el 8 de Marzo del 2017
Clase que ayuda a generar as particiones de un numero es decir que a partir de un numero se generan las combinaciones de posibles números cuya suma entre si es el total del numero dado.

Su uso es simple:

Instanciamos la clase enviandole como parametro el numero del cual se hara la particion

1
particiones = NParticiones(5)

Luego tenemos dos opciones en la clase para obtener los resultados:

Acceder a la propiedad particiones que es una lista de todas las particiones del numero

1
print particiones.particiones

Aquella propiedad mencionada anteriormente tendría una estructura como la siguiente:

1
[[4, 1], [3, 2], [3, 1, 1], [2, 2, 1], [2, 1, 1, 1], [1, 1, 1, 1, 1]]

Llamar al metodo print_particiones(), aquel metodo se encargara de imprimir por pantalla lo siguiente:

1
particiones.print_particiones()

Mostrara:

1
2
3
4
5
6
5 = 4 + 1
5 = 3 + 2
5 = 3 + 1 + 1
5 = 2 + 2 + 1
5 = 2 + 1 + 1 + 1
5 = 1 + 1 + 1 + 1 + 1
Imágen de perfil

Clase para crear y validar contraseñas seguras


PHP

estrellaestrellaestrellaestrellaestrella(4)
Actualizado el 9 de Diciembre del 2016 por Kip (28 códigos) (Publicado el 17 de Octubre del 2016)
6.000 visualizaciones desde el 17 de Octubre del 2016
Clase sencilla que ayuda a crear y asi mismo a validar contraseñas, para la creación de estas usa el algoritmo BLOWFISH incluido ya en PHP.

Ejemplos de uso:

Crear un hash a partir de una variable $_POST

1
2
3
4
5
require 'phasswordClass.php';
 
$obj = new Phassword;
$password_post = $_POST['password'];
$password_hash = $obj->cryptphass($password_post);

Validar una contraseña a partir de una contraseña ingresada y tomar el hash ya almacenado en la base de datos

1
2
3
4
5
6
7
8
9
10
11
require 'phasswordClass.php';
 
$obj = new Phassword;
$password_post = $_POST['password'];
 
//$password_base_de_datos es la variable de la contraseña almacenada en la base
//creado con la funcion cryptphass() de esta misma clase
 
if ($obj->verifphass($password_post, $password_base_de_datos)) {
	echo 'Contraseña valida!';
}

Es posible modificar el coste por defecto a usar en la encriptación, el que toma por defecto es el 10 un coste optimo pero depende del hardware y puede aumentarse de esta forma:

1
2
3
4
5
6
require 'phasswordClass.php';
 
$obj = new Phassword;
$obj->coste = 15;
$password_post = $_POST['password'];
$password_hash = $obj->cryptphass($password_post);

Esta clase funciona con una version de PHP mayor o igual a 5.3.7 en este caso usa la funcion crypt() y en el caso de tener una version mayor o igual a 5.5 usa la funcion password_hash() para crear el hash de la contraseña.

En caso de tener una duda acerca de lo expuesto anteriormente es mejor hacer una evaluacion del retorno de la funcion que crea el hash y asi mismo en caso de que exista un error mostrarlo llamando a la variable 'error' de la clase, asi:

1
2
3
4
5
6
7
8
9
10
11
require 'phasswordClass.php';
 
$obj = new Phassword;
$password_post = $_POST['password'];
$password_hash = $obj->cryptphass($password_post);
 
if (!$password_hash) {
	echo $obj->error;
} else {
	echo 'Contraseña creada!';
}

Lo mejor seria tener una versión estable PHP para la correcta creación y verificación de contraseñas.

Cualquier error o duda comentarlo por aqui.

Saludos