ClientEncryption.decrypt(encryptedValue)
ClientEncryption.decrypt()
descriptografa oencryptionValue
se 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
ClientEncryption.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 mongosh
ClientEncryption
métodos exigem uma conexão de banco de dados com a criptografia em uso ativada. Se a conexão atual do banco de dados não tiver sido iniciada com a criptografia em uso ativada, faça o seguinte:
Use o
Mongo()
construtor domongosh
para estabelecer uma conexão com as opções de criptografia em uso necessárias. O métodoMongo()
suporta os seguintes fornecedores de KMS (KMS) para gerenciamento da chave mestra do cliente (CMK):ou
Utilize as
mongosh
opçõ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.
Crie sua conexão criptografada
Inicie o mongosh
Executar:
mongosh --nodb --nodb
significa não se conectar a um banco de dados de dados.Gerar uma string de chave
Gere uma string base de 64 96bytes:
const TEST_LOCAL_KEY = require("crypto").randomBytes(96).toString("base64") 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) } } } Criar um objeto de cliente criptografado
Para criar um objeto de cliente criptografado, use o construtor
Mongo()
. Substitua omongodb://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 )
Descriptografar seus dados
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="))
Exemplos de resultados
Se bem-sucedido, decrypt()
retorna o valor descriptografado:
"123-45-6789"
Saiba mais
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()
.