---
title: roPassKey
slug: develop/es/ropasskey
docTags: 
createdAt: 2025-03-11T07:07:17.200Z
---

Este objeto proporciona un medio para generar claves (hashes) a partir de una contraseña y salt. El equivalente en JavaScript es la API Crypto de Node.js.

Creación del objeto: Al objeto se le pasa un arreglo asociativo que especifica los métodos de generación y el cifrado.

```text
CreateObject("roPassKey", parameters As roAssociativeArray)
```

El arreglo asociativo debe contener los siguientes parámetros:

- `método`: El método de derivación de claves. Actualmente, solo se puede especificar "pbkdf2".
- `keyfn`: La función pseudoaleatoria (PRF). Actualmente, solo se puede especificar "hmac-sha256".
- `keylen`: La longitud de la clave
- `iteraciones`: El número de iteraciones

## ifPassKey

### GenerateKey(password As Object, salt As Object) As roByteArray

Genera una clave usando la contraseña y el salt proporcionados. Los parámetros pueden pasarse como cadenas o como instancias de *roByteArray* . La instancia generada de *roByteArray* puede contener todos los valores de bytes posibles, incluido NUL.

### GenerateSalt(length As Integer) As roByteArray

Genera un salt de la longitud especificada. Este salt puede utilizarse al llamar al método `GenerarClave()` . La instancia generada de *roByteArray* puede contener todos los valores de bytes posibles, incluido NUL.

### Ejemplo

```text
' Create input test data
salt = CreateObject("roByteArray")
pass = CreateObject("roByteArray")
pass.FromAsciiString("password")
salt.FromAsciiString("salt")
' Create the key generator
pk = CreateObject("roPassKey",  { method: "pbkdf2", keyfn: "hmac-sha256", keylen: 32, iterations: 4096 } )
' key with be a roByteArray
key = pk.GenerateKey(pass, salt)
```

