npm-shortidx
v1.4.1
Published
Generador de Id aleatorios, Random Id Generator
Maintainers
Readme
npm-shortidx
npm-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.) utilizancrypto.getRandomValuespara una aleatoriedad criptográficamente segura.Sin embargo, para contraseñas, seguimos recomendando usar
PasswordGenya que ofrece una API específica para configuración de seguridad.
Tabla de Contenidos
Instalación
npm i npm-shortidxyarn add npm-shortidxMétodos
🛡️ Seguridad
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,RandomIdxyCustomIdxgeneran identificadores con alta entropía y aleatoriedad criptográfica. - Contraseñas:
PasswordGenestá optimizada específicamente para generar contraseñas seguras.
ShortIdx(),
RandomIdx(),
CustomIdx(),
RepeatIdx(),
ShuffleX(),
IndexShuffle(),
ShuffleString(),
PasswordGen();ShortIdx()
Genera IDs aleatorios con caracteres alfanuméricos.
Caracteres usados:
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_Uso:
import { ShortIdx } from "npm-shortidx";
ShortIdx(); // "G7ksLzW"
ShortIdx(12); // "AdE8fsU1KqpQ"RandomIdx()
Genera IDs aleatorios que incluyen símbolos y caracteres especiales.
Caracteres usados:
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_!#$%&'()*+,./:;<=>?@[]^`{|}~\"Uso:
import { RandomIdx } from "npm-shortidx";
RandomIdx(); // "s@L!z82_"
RandomIdx(10); // "*>d3@9x^Z!"CustomIdx()
Genera un ID usando un conjunto de caracteres personalizado.
import { CustomIdx } from "npm-shortidx";
CustomIdx("ABC123", 5); // "2B1AC"RepeatIdx()
Genera múltiples IDs de forma masiva.
import { RepeatIdx, ShortIdx } from "npm-shortidx";
RepeatIdx(4, ShortIdx); // ["R3f7tK1", "gTz1xL9", ...]
RepeatIdx(3, RandomIdx, 10); // ["<xD&0j9@#", "2K!lm8$@#", ...]ShuffleX()
Reordena arrays de forma aleatoria.
import { ShuffleX } from "npm-shortidx";
const items = ["a", "b", "c", "d"];
ShuffleX(items); // ['c', 'a', 'd', 'b']
ShuffleX(items, 2); // ['b', 'd']IndexShuffle()
Devuelve un array de índices aleatorios.
import { IndexShuffle } from "npm-shortidx";
IndexShuffle(5); // [2, 0, 4, 1, 3]ShuffleString()
Desordena los caracteres de un string.
import { ShuffleString } from "npm-shortidx";
ShuffleString("abcdef"); // "ecdbfa"¿Qué función debo usar?
| Caso de uso | Función |
| --------------------------------- | --------------- |
| IDs cortos y ligeros | ShortIdx |
| IDs con símbolos | RandomIdx |
| IDs con charset personalizado | CustomIdx |
| Generar múltiples IDs | RepeatIdx |
| Barajar arrays sin mutarlos | ShuffleX |
| Obtener índices aleatorios | IndexShuffle |
| Reordenar caracteres de un string | ShuffleString |
| Generar contraseñas seguras | PasswordGen |
Ejemplos
Uso en React
import { ShortIdx } from "npm-shortidx";
function App() {
const letters = ["a", "b", "c", "d"];
return (
<>
<p>{ShortIdx()}</p>
{letters.map((letter) => (
<p key={ShortIdx()}>{letter}</p>
))}
</>
);
}Cambiando la longitud del ID
ShortIdx(15); // "Kz83kJqsTg92Lm1"Generando múltiples IDs
RepeatIdx(5, RandomIdx, 10); // ['@d8Lz!pZ3x', '29&Lk1@9Tq', ...]Reordenando caracteres de un string
ShuffleString("hola mundo"); // "ouh nldma"PasswordGen()
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:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZSi necesitas números, símbolos o caracteres Unicode,
agrégalos explícitamente mediante extraChars .
Uso:
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.
Contribuciones
¡Las contribuciones son bienvenidas! Siéntete libre de abrir un issue o enviar un pull request.
