ClientEncryption.decrypt(encryptedValue)ClientEncryption.decrypt()descriptografa oencryptionValuese a conexão do banco de dados atual foi configurada com acesso ao KMS (KMS) e cofre de chave utilizado para criptografar oencryptionValue.Retorna: O valor descriptografado.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
decrypt() tem a seguinte sintaxe:
clientEncryption = db.getMongo().getClientEncryption() clientEncryption.decrypt(encryptedValue)
O encryptedValue deve ser um objeto binary data com subtipo 6 criado utilizando criptografia de nível de campo do lado do cliente.
Comportamento
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.
Habilite criptografia no nível do campo do lado do cliente na conexão do banco de dados
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:
Use o construtor
Mongo()domongoshpara estabelecer uma conexão com as opções necessárias de criptografia de nível de campo no lado do cliente. O métodoMongo()é compatível com os seguintes provedores de serviço de gerenciamento de chaves (KMS) para o gerenciamento da chave mestra do cliente (CMK):ou
Utilize as
mongoshopções da linha de comando para estabelecer uma conexão com as opções exigidas. As opções de linha de comando são compatíveis apenas com o provedor Amazon Web Services KMS para gerenciamento da chave mestra do cliente.
Exemplo
O exemplo a seguir usa um KMS managed localmente para a configuração de criptografia no nível do campo do lado do cliente.
Para configurar a criptografia no nível do campo do lado do cliente para uma chave gerenciada localmente:
gerar uma string de 96 bytes codificada em base 64sem quebras de linha
use
mongoshpara carregar a chave
export TEST_LOCAL_KEY=$(echo "$(head -c 96 /dev/urandom | base64 | tr -d '\n')") mongosh --nodb
Crie o objeto de criptografia no nível do campo do lado do cliente usando a string de chave local gerada:
var autoEncryptionOpts = { "keyVaultNamespace" : "encryption.__dataKeys", "kmsProviders" : { "local" : { "key" : BinData(0, process.env["TEST_LOCAL_KEY"]) } } }
Use o construtor Mongo() com as opções de criptografia de nível de campo do lado do cliente configuradas para criar uma conexão com o reconhecimento de data center. Substitua o URI mongodb://myMongo.example.net pelo URI da string de conexão do cluster de destino.
encryptedClient = Mongo( "mongodb://myMongo.example.net:27017/?replSetName=myMongo", autoEncryptionOpts )
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().