ClientEncryption.decrypt(encryptedValue)ClientEncryption.decrypt()descriptografa seencryptionValuea conexão de banco de dados atual foi configurada com acesso ao Key Management Service (KMS) e ao cofre de chaves usado paraencryptionValuecriptografar.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 dadosconfiguredcom acesso ao Key Management Service (KMS) correto e ao Key Vault podem descriptografar automaticamente os valores de campo criptografados usandoClientEncryption.encrypt(). Os clientes só precisam usardecrypt()para descriptografarBinaryvalores 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:
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 fornecedor 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 --nodbsignifica 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_KEYda 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.netURI 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 ClientEncryption objeto e utilize o método para descriptografar um valor ClientEncryption.decrypt() codificado ClientEncryption.encrypt() por.
clientEncryption = encryptedClient.getClientEncryption(); clientEncryption.decrypt(BinData(6,"AmTi2H3xaEk8u9+jlFNaLLkC3Q/+kmwDbbWrq+h9nuv9W+u7A5a0UnpULBNZH+Q21fAztPpU09wpKPrju9dKfpN1Afpj1/ZhFcH6LYZOWSBBOAuUNjPLxMNSYOOuITuuYWo="))
Exemplos de resultados
Se bem-sucedido, retorna o valordecrypt() 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().