Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

ClientEncryption.decrypt()

Nesta página

  • Sintaxe
  • Comportamento
  • Exemplo
  • Saiba mais
ClientEncryption.decrypt(encryptedValue)

ClientEncryption.decrypt() descriptografa o encryptionValue se a conexão do banco de dados atual foi configurada com acesso ao KMS (KMS) e cofre de chave utilizado para criptografar o encryptionValue.

Retorna:O valor descriptografado.

ClientEncryption.decrypt tem a seguinte sintaxe:

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

O encryptedValue deve ser um binary data objeto com subtipo 6 criado usando criptografia de nível de campo no lado do cliente .

As operações de leitura emitidas a partir de uma conexão de banco de dados configured com acesso ao KMS correto (KMS) e ao Key Vault podem descriptografar automaticamente os valores de campo criptografados usando ClientEncryption.encrypt(). Os clientes só precisam usar decrypt() para descriptografar Binary valores do subtipo 6 não armazenados em um campo de documento.

Os métodos de criptografia de nível de campo do lado do cliente mongosh exigem uma conexão de banco de dados com a criptografia de nível de campo do lado do cliente ativada. Se a conexão atual do banco de dados não tiver sido iniciada com a criptografia em nível de campo do lado do cliente ativada, faça o seguinte:

O exemplo a seguir usa um KMS managed localmente para a configuração de criptografia no nível do campo do lado do cliente.

1
  1. Inicie o mongosh

    Executar:

    mongosh --nodb

    --nodb significa não se conectar a um banco de dados de dados.

  2. Gerar uma string de chave

    Gere uma string base de 64 96bytes:

    const TEST_LOCAL_KEY = require("crypto").randomBytes(96).toString("base64")
  3. Criar um objeto de opções de criptografia

    Para criar um objeto de opções de criptografia no nível do campo do lado do cliente , use a string TEST_LOCAL_KEY da etapa anterior:

    var autoEncryptionOpts = {
    "keyVaultNamespace" : "encryption.__dataKeys",
    "kmsProviders" : {
    "local" : {
    "key" : BinData(0, TEST_LOCAL_KEY)
    }
    }
    }
  4. Criar um objeto de cliente criptografado

    Para criar um objeto de cliente criptografado, use o construtor Mongo() . Substitua o mongodb://myMongo.example.net URI pelo URI da string de conexão para o cluster de destino. Por exemplo:

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

Recupere o objeto ClientEncryption e use o método ClientEncryption.decrypt() para descriptografar um valor criptografado por ClientEncryption.encrypt().

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

Se bem-sucedido, decrypt() retorna o valor descriptografado:

"123-45-6789"

Para obter a documentação completa sobre como iniciar conexões do MongoDB com a criptografia no nível do campo do lado do cliente habilitada, consulte Mongo().

Voltar

ClientEncryption.encrypt