Generador de Id aleatorios, Random Id Generator
npm install npm-shortidxnpm-shortidx es una librería para generar identificadores aleatorios cortos. Incluye funciones para generar IDs con diferentes conjuntos de caracteres y para reordenar arrays de manera aleatoria.
> ⚠️ Nota de Versión 1.4.0
>
> A partir de la versión 1.4.0, todas las funciones de generación de IDs (ShortIdx, RandomIdx, etc.) utilizan crypto.getRandomValues para una aleatoriedad criptográficamente segura.
>
> Sin embargo, para contraseñas, seguimos recomendando usar PasswordGen ya que ofrece una API específica para configuración de seguridad.
- Instalación
- Métodos
- ShortIdx
- RandomIdx
- CustomIdx
- RepeatIdx
- ShuffleX
- IndexShuffle
- ShuffleString
- PasswordGen
- Ejemplos
- Contribuciones
- Licencia
``bash`
npm i npm-shortidx
`bash`
yarn add npm-shortidx
Desde la versión 1.4.0, esta librería utiliza crypto.getRandomValues (Web Crypto API) internamente para todas las operaciones de aleatoriedad.
- IDs Seguros: ShortIdx, RandomIdx y CustomIdx generan identificadores con alta entropía y aleatoriedad criptográfica.PasswordGen
- Contraseñas: está optimizada específicamente para generar contraseñas seguras.
`ts`
ShortIdx(),
RandomIdx(),
CustomIdx(),
RepeatIdx(),
ShuffleX(),
IndexShuffle(),
ShuffleString(),
PasswordGen();
---
Genera IDs aleatorios con caracteres alfanuméricos.
Caracteres usados:
``
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_
Uso:
`ts
import { ShortIdx } from "npm-shortidx";
ShortIdx(); // "G7ksLzW"
ShortIdx(12); // "AdE8fsU1KqpQ"
`
---
Genera IDs aleatorios que incluyen símbolos y caracteres especiales.
Caracteres usados:
`{|}~\"
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_!#$%&'()*+,./:;<=>?@[]^
``
Uso:
`ts
import { RandomIdx } from "npm-shortidx";
RandomIdx(); // "s@L!z82_"
RandomIdx(10); // "*>d3@9x^Z!"
`
---
Genera un ID usando un conjunto de caracteres personalizado.
`ts
import { CustomIdx } from "npm-shortidx";
CustomIdx("ABC123", 5); // "2B1AC"
`
---
Genera múltiples IDs de forma masiva.
`ts
import { RepeatIdx, ShortIdx } from "npm-shortidx";
RepeatIdx(4, ShortIdx); // ["R3f7tK1", "gTz1xL9", ...]
RepeatIdx(3, RandomIdx, 10); // ["
---
Reordena arrays de forma aleatoria.
`ts
import { ShuffleX } from "npm-shortidx";
const items = ["a", "b", "c", "d"];
ShuffleX(items); // ['c', 'a', 'd', 'b']
ShuffleX(items, 2); // ['b', 'd']
`
---
Devuelve un array de índices aleatorios.
`ts
import { IndexShuffle } from "npm-shortidx";
IndexShuffle(5); // [2, 0, 4, 1, 3]
`
---
Desordena los caracteres de un string.
`ts
import { ShuffleString } from "npm-shortidx";
ShuffleString("abcdef"); // "ecdbfa"
`
| Caso de uso | Función |
| --------------------------------- | --------------- |
| IDs cortos y ligeros | ShortIdx |RandomIdx
| IDs con símbolos | |CustomIdx
| IDs con charset personalizado | |RepeatIdx
| Generar múltiples IDs | |ShuffleX
| Barajar arrays sin mutarlos | |IndexShuffle
| Obtener índices aleatorios | |ShuffleString
| Reordenar caracteres de un string | |PasswordGen
| Generar contraseñas seguras | |
---
Uso en React
`jsx
import { ShortIdx } from "npm-shortidx";
function App() {
const letters = ["a", "b", "c", "d"];
return (
<>
{ShortIdx()}
{letter}
Cambiando la longitud del ID
`ts
ShortIdx(15); // "Kz83kJqsTg92Lm1"
`Generando múltiples IDs
`ts
RepeatIdx(5, RandomIdx, 10); // ['@d8Lz!pZ3x', '29&Lk1@9Tq', ...]
`Reordenando caracteres de un string
`ts
ShuffleString("hola mundo"); // "ouh nldma"
`---
$3
Genera contraseñas aleatorias utilizando una fuente de aleatoriedad criptográficamente segura (
crypto.getRandomValues).✅ Uso recomendado:
- Contraseñas
- Tokens de seguridad
- Claves temporales sensibles
❌ No recomendado para:
- IDs visuales
- Keys de UI
- Slugs
Por defecto, el generador utiliza únicamente letras ASCII:
- a–z
- A–Z
Esto garantiza compatibilidad máxima con cualquier sistema.
Caracteres por defecto:
`
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
`Si necesitas números, símbolos o caracteres Unicode,
agrégalos explícitamente mediante
extraChars .Uso:
`ts
import { PasswordGen } from "npm-shortidx";PasswordGen();
// Ejemplo: "A9kP2Lm8Qx1Z" (Alfanumérico por defecto)
PasswordGen({
extraChars: "!@#$%"
});
// Ejemplo con símbolos: "A9$kP2@Lm8#Qx1!Z"
PasswordGen({
length: 24,
});
PasswordGen({
extraChars: "_-+=",
});
``PasswordGen está diseñada para seguridad.
Usa esta función siempre que necesites una contraseña real.
---
¡Las contribuciones son bienvenidas! Siéntete libre de abrir un issue o enviar un pull request.
---