Colección de citas famosas - Colección de consignas - Ventanas de generación de claves RSA y de cifrado y descifrado en el front-end. cripto

Ventanas de generación de claves RSA y de cifrado y descifrado en el front-end. cripto

Crypto API admite el cifrado y descifrado rsa y aes de uso común. Aquí presentamos la aplicación de rsa.

Window.crypto requiere Chrome 37, es decir, 11, y Safari 11 para admitir todas las API. El cifrado y descifrado básico se pueden completar en Safari 7.

Crypto.subtitle.generatekey (algoritmo, extraíble, uso de claves), entre los cuales:

1 Complete los pares de parámetros correspondientes para los parámetros del algoritmo de acuerdo con diferentes algoritmos, rsa debe hacerlo. completarse Ingrese el objeto RsaHashedKeyGenParams, que incluye:

2.extractable es generalmente verdadero, lo que indica si se permite que la clave se exporte como texto.

3.KeyUsage es una matriz que puede cifrar, descifrar, firmar, etc.

El resultado de la función devuelve un objeto de promesa. Si se trata de cifrado simétrico, obtendrá una clave de tipo CryptoKey. rsa obtendrá un par de claves CryptoKeyPair aquí, que tiene dos miembros CryptoKey, privateKey y publicKey. Exportamos la clave como texto o la ciframos y desciframos a través de estos dos objetos miembros.

ventana .crypto .subtítulo .clave de exportación (formato, clave), entre las cuales:

1 puedo elegir Raw, pkcs8, spki, jwk. Se pueden seleccionar formatos, spki y pkcs8 para nuestra exportación de clave pública.

2. La clave es la clave privada o la clave pública del par de claves anterior.

Esta función devuelve un objeto de promesa y el resultado es un ArrayBuffer, que es de estilo pem.

ventana . crypto . clave de importación conductora(

Formato,

Datos clave,

Algoritmo,

Extraíble,

Uso de claves

), entre los cuales:

Se puede seleccionar 1 Raw, pkcs8, spki, jwk. El formato corresponde a la generación anterior. Elegimos spki al importar la clave pública y pkcs8 al importar la clave privada.

2.keyData es el ArrayBuffer obtenido por window.crypto. Debido a que generalmente solo tenemos texto pem aquí, aún necesitamos convertirlo a ArrayBuffer.

3. El algoritmo aquí es rsa, que necesita completar un objeto RsaHashedImportParams, correspondiente al objeto RsaHashedKeyGenParams requerido para generar la clave, que incluye:

4. y criptografía fina. La clave de generación es la misma

5. El uso de la clave es el mismo que el de la clave de generación.

La función devuelve un objeto de promesa y el resultado. es una criptoclave.

Cifrar crypto.subtitle.encrypt (algoritmo, clave, datos), entre los cuales:

1. El algoritmo, el cifrado y el descifrado solo admiten RSA-OAEP, no RSAES-PKCS1-v1_5. .

2.key es el objeto CryptoKey de la clave pública.

3. Los datos son un objeto BufferSource y no pueden ser una cadena cifrada directamente.

El resultado es un ArrayBuffer, que se puede descifrar usando window . btoa(string . from charcode(...new uint8array (e)).

Descifrar crypto.subtitle.decrypt (algoritmo, clave criptográfica, datos) es básicamente lo mismo que el cifrado, y los datos corresponden al ArrayBuffer devuelto por el cifrado. Si la cadena base64 está cifrada desde el backend, debe convertirse a Uint8Array. >El valor de retorno es el mismo que el cifrado