Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

ClientEncryption.decrypt() (método mongosh)

ClientEncryption.decrypt(encryptedValue)

ClientEncryption.decrypt() descifra el encryptionValue si la conexión de base de datos actual fue configurada con acceso al Key Management Service (KMS) y al almacén de claves utilizado para cifrar encryptionValue.

Devuelve:El valor descifrado.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

ClientEncryption.decrypt tiene la siguiente sintaxis:

clientEncryption = db.getMongo().getClientEncryption()
clientEncryption.decrypt(encryptedValue)

El encryptedValue debe ser un objeto binary data con subtipo 6 creados utilizando cifrado a nivel de campo del lado del cliente.

Las operaciones de lectura realizadas desde una conexión de base de datos configured con acceso al Key Management Service (KMS) y Key Vault correctos pueden descifrar automáticamente los valores de los campos cifrados mediante ClientEncryption.encrypt(). Los clientes solo necesitan usar decrypt() para descifrar Binary los valores subtipo 6 que no están almacenados en un campo del documento.

Los métodos mongosh ClientEncryption requieren una conexión a la base de datos con la encriptación en uso activada. Si la conexión actual a la base de datos no se inició con la encriptación en uso activada, entonces:

El siguiente ejemplo utiliza un KMS gestionado localmente para la configuración de cifrado a nivel de campo en el lado del cliente.

1
  1. Inicia mongosh

    Ejecuta:

    mongosh --nodb

    --nodb significa no conectarse a una base de datos.

  2. Generar un String

    Genera una cadena base de 64 96bytes:

    const TEST_LOCAL_KEY = require("crypto").randomBytes(96).toString("base64")
  3. Crear un objeto de opciones de cifrado

    Para crear un objeto de opciones de cifrado de nivel de campo del lado del cliente, utilice la string TEST_LOCAL_KEY del paso anterior:

    var autoEncryptionOpts = {
    "keyVaultNamespace" : "encryption.__dataKeys",
    "kmsProviders" : {
    "local" : {
    "key" : BinData(0, TEST_LOCAL_KEY)
    }
    }
    }
  4. Cree un objeto cliente cifrado

    Para crear un objeto cliente cifrado, utiliza el constructor Mongo(). Reemplace el URI mongodb://myMongo.example.net por el URI de la cadena de conexión para el clúster de destino. Por ejemplo:

    encryptedClient = Mongo(
    "mongodb://myMongo.example.net:27017/?replSetName=myMongo",
    autoEncryptionOpts
    )
2

Recupera el objeto ClientEncryption y utiliza el método ClientEncryption.decrypt() para desencriptar un valor encriptado por ClientEncryption.encrypt().

clientEncryption = encryptedClient.getClientEncryption();
clientEncryption.decrypt(BinData(6,"AmTi2H3xaEk8u9+jlFNaLLkC3Q/+kmwDbbWrq+h9nuv9W+u7A5a0UnpULBNZH+Q21fAztPpU09wpKPrju9dKfpN1Afpj1/ZhFcH6LYZOWSBBOAuUNjPLxMNSYOOuITuuYWo="))

Si es exitoso, decrypt() devuelve el valor descifrado:

"123-45-6789"

Para obtener la documentación completa sobre cómo iniciar conexiones MongoDB con el cifrado a nivel de campo en el lado del cliente activado, consulte Mongo().

Volver

ClientEncryption.encryptExpression

En esta página

HTTPS · www.mongodb.com
← Home