Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

ClientEncryption.decrypt() (método mongosh)

ClientEncryption.decrypt(encryptedValue)

ClientEncryption.decrypt() decrypts the encryptionValue if the current database connection was configured with access to the Key Management Service (KMS) and key vault used to encrypt 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 binary data objeto con subtipo 6 creado mediante cifrado de nivel de campo del lado del cliente.

Las operaciones de lectura emitidas desde una conexión de base de datosconfiguredcon acceso al Servicio de administración de claves (KMS) y Key Vault correctos pueden descifrar automáticamente los valores de campo cifrados conClientEncryption.encrypt(). Los clientes solo necesitan usardecrypt()para descifrar los valores de subtipo 6 Binaryque no se almacenan dentro de un campo de documento.

The mongosh client-side field level encryption methods require a database connection with client-side field level encryption enabled. If the current database connection was not initiated with client-side field level encryption enabled, either:

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

Retrieve the ClientEncryption object and use the ClientEncryption.decrypt() method to decrypt a value encrypted by ClientEncryption.encrypt().

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

If successful, decrypt() returns the decrypted value:

"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().