Resolvido: Fernet% 3A não pode descriptografar strings salvas em csv com pandas

Fernet é uma biblioteca de criptografia simétrica em Python que fornece criptografia segura e fácil de usar para dados confidenciais. Um caso de uso comum para Fernet é criptografar dados antes de armazená-los em um arquivo CSV, garantindo que apenas pessoas autorizadas possam acessá-los. No entanto, descriptografar essas strings criptografadas em um arquivo CSV pode ser um pouco complicado, especialmente ao usar a biblioteca Pandas.

Neste artigo, discutiremos uma solução para o problema de descriptografar strings salvas em um arquivo CSV usando Fernet e Pandas. Forneceremos uma explicação passo a passo do código e nos aprofundaremos nas funções e bibliotecas relevantes envolvidas no processo.

Para começar, vamos discutir o problema em detalhes. Ao usar a criptografia Fernet para proteger os dados antes de armazená-los em um arquivo CSV, pode ser difícil descriptografar os dados de volta ao usar o Pandas para ler o arquivo. As strings criptografadas requerem tratamento adequado para garantir sua integridade durante a descriptografia.

Solução para o problema

Uma possível solução para esse problema é usar funções personalizadas e aplicá-las ao dataframe obtido do arquivo CSV. Vamos criar uma função para descriptografar as strings criptografadas usando a biblioteca Fernet e, em seguida, aplicar essa função ao dataframe do Pandas que contém os dados criptografados.

Aqui está uma explicação passo a passo do código:

1. Primeiro, precisamos importar as bibliotecas necessárias:

import pandas as pd
from cryptography.fernet import Fernet

2. Em seguida, vamos gerar uma chave Fernet e criptografar alguns dados de amostra. Suponha que criptografamos os seguintes dados e os salvamos em um arquivo CSV chamado “encrypted_data.csv” com duas colunas “data” e “encrypted”:

key = Fernet.generate_key()
cipher_suite = Fernet(key)
data = "This is a sample text."
encrypted_data = cipher_suite.encrypt(data.encode("utf-8"))

3. Agora, vamos criar uma função para descriptografar as strings criptografadas com a chave Fernet fornecida:

def decrypt_string(encrypted_string, fernet_key):
    cipher_suite = Fernet(fernet_key)
    return cipher_suite.decrypt(encrypted_string.encode("utf-8")).decode("utf-8")

4. Podemos ler o arquivo CSV contendo dados criptografados usando Pandas:

csv_data = pd.read_csv('encrypted_data.csv')

5. Por fim, aplique a função 'decrypt_string' à coluna criptografada do quadro de dados usando o método 'apply' e armazene os dados descriptografados em uma nova coluna. Observe que você precisa passar a chave como um argumento adicional no método 'apply':

csv_data['decrypted'] = csv_data['encrypted'].apply(decrypt_string, fernet_key=key)

Biblioteca Fernet

Fernet é uma biblioteca criptográfica popular em Python que fornece métodos fáceis de usar para criptografar e descriptografar dados com criptografia de chave simétrica AES. A biblioteca garante que os dados criptografados usando Fernet não possam ser manipulados ou lidos sem a chave, garantindo a confidencialidade e integridade dos dados. Fernet usa codificação URL-safe/base64 para textos cifrados, o que o torna adequado para armazenar dados criptografados em arquivos ou bancos de dados.

Biblioteca de pandas

Pandas é uma biblioteca de manipulação e análise de dados de código aberto em Python. Ele fornece estruturas de dados, como Series e DataFrame, e várias funções para manipulação, transformação e visualização de dados. O Pandas é particularmente útil para trabalhar com dados estruturados ou tabulares, como arquivos CSV ou bancos de dados SQL. Essa biblioteca simplifica muitos aspectos da manipulação de dados, tornando-a uma ferramenta essencial para análise de dados e aprendizado de máquina.

Em conclusão, a descriptografia de strings criptografadas salvas em um arquivo CSV usando Fernet e Pandas pode ser realizada seguindo as etapas fornecidas neste artigo. Ao criar uma função de descriptografia personalizada e aplicá-la ao dataframe, podemos descriptografar efetivamente os dados confidenciais armazenados no arquivo CSV.

Artigos relacionados:

Deixe um comentário