Criptografar ou Descriptografar | Módulo Excel VBA para Ofuscação de Senha Simples

Criptografar ou Descriptografar | Módulo Excel VBA para Ofuscação de Senha Simples

Como Ofuscar Senhas Simples Usando VBA no Excel

A segurança de dados é uma preocupação constante em qualquer ambiente de trabalho, e o Excel, como uma das ferramentas mais usadas para gerenciamento de informações, não é exceção. A ofuscação de senhas simples usando VBA no Excel é uma técnica útil para proteger dados sensíveis, como credenciais de login ou informações pessoais, dentro de planilhas. Neste artigo, exploramos um código VBA que permite criptografar e descriptografar senhas ou outras strings de texto de forma simples e eficaz.

O código VBA apresentado utiliza funções para criptografar e descriptografar strings com base no valor ASCII dos caracteres. Embora este método não seja à prova de falhas e não ofereça o mesmo nível de segurança que técnicas de criptografia mais avançadas, ele é suficiente para proteger dados em um ambiente de uso interno, onde a exposição a ameaças externas é mínima.

O processo de criptografia envolve a conversão de cada caractere da string em outro caractere com base em seu valor ASCII, utilizando um deslocamento específico. Por exemplo, letras maiúsculas, minúsculas e números são deslocados por diferentes valores para gerar uma string criptografada que não é legível à primeira vista. A função de descriptografia reverte esse processo, retornando a string ao seu formato original.

A versão avançada do código inclui melhorias como tratamento de erros para evitar falhas ao tentar criptografar ou descriptografar strings vazias, além de um ajuste básico para lidar com outros caracteres além de letras e números. Essas melhorias tornam o código mais robusto e capaz de lidar com uma variedade maior de entradas de dados.

Ofuscar senhas ou outras informações confidenciais é uma prática recomendada para qualquer planilha do Excel que armazene dados sensíveis. Ao usar este código VBA, você pode aumentar a segurança de suas planilhas de maneira simples e eficaz, sem a necessidade de ferramentas externas ou conhecimentos avançados de segurança cibernética.


Option Explicit

' Função para criptografar uma string
Public Function Encrypt(ByVal icText As String) As String

    Dim icLen As Integer
    Dim icNewText As String
    Dim icChar As String
    Dim i As Integer

    icLen = Len(icText)

    ' Loop através de cada caractere da string
    For i = 1 To icLen
        icChar = Mid(icText, i, 1)
        
        ' Criptografia baseada no valor ASCII dos caracteres
        Select Case Asc(icChar)
            Case 65 To 90 ' Letras maiúsculas (A-Z)
                icChar = Chr(Asc(icChar) + 127)
            Case 97 To 122 ' Letras minúsculas (a-z)
                icChar = Chr(Asc(icChar) + 121)
            Case 48 To 57 ' Números (0-9)
                icChar = Chr(Asc(icChar) + 196)
            Case 32 ' Espaço
                icChar = Chr(32) ' Mantém o espaço inalterado
        End Select

        ' Concatena o caractere criptografado à nova string
        icNewText = icNewText & icChar
    Next

    Encrypt = icNewText

End Function

' Função para descriptografar uma string
Public Function Decrypt(ByVal icText As String) As String

    Dim icLen As Integer
    Dim icNewText As String
    Dim icChar As String
    Dim i As Integer

    icLen = Len(icText)

    ' Loop através de cada caractere da string
    For i = 1 To icLen
        icChar = Mid(icText, i, 1)

        ' Descriptografia baseada no valor ASCII dos caracteres
        Select Case Asc(icChar)
            Case 192 To 217 ' Letras maiúsculas (A-Z)
                icChar = Chr(Asc(icChar) - 127)
            Case 218 To 243 ' Letras minúsculas (a-z)
                icChar = Chr(Asc(icChar) - 121)
            Case 244 To 253 ' Números (0-9)
                icChar = Chr(Asc(icChar) - 196)
            Case 32 ' Espaço
                icChar = Chr(32) ' Mantém o espaço inalterado
        End Select

        ' Concatena o caractere descriptografado à nova string
        icNewText = icNewText & icChar
    Next

    Decrypt = icNewText

End Function


Versão Avançada


Option Explicit

' Função para criptografar uma string com tratamento de erros
Public Function Encrypt(ByVal icText As String) As String

    Dim icLen As Integer
    Dim icNewText As String
    Dim icChar As String
    Dim i As Integer

    ' Verifica se a string de entrada está vazia
    If icText = "" Then
        Encrypt = ""
        Exit Function
    End If

    icLen = Len(icText)

    ' Loop através de cada caractere da string
    For i = 1 To icLen
        icChar = Mid(icText, i, 1)
        
        ' Criptografia baseada no valor ASCII dos caracteres
        Select Case Asc(icChar)
            Case 65 To 90 ' Letras maiúsculas (A-Z)
                icChar = Chr(Asc(icChar) + 127)
            Case 97 To 122 ' Letras minúsculas (a-z)
                icChar = Chr(Asc(icChar) + 121)
            Case 48 To 57 ' Números (0-9)
                icChar = Chr(Asc(icChar) + 196)
            Case Else ' Outros caracteres
                icChar = Chr(Asc(icChar) + 100) ' Ajuste básico para outros caracteres
        End Select

        ' Concatena o caractere criptografado à nova string
        icNewText = icNewText & icChar
    Next

    Encrypt = icNewText

End Function

' Função para descriptografar uma string com tratamento de erros
Public Function Decrypt(ByVal icText As String) As String

    Dim icLen As Integer
    Dim icNewText As String
    Dim icChar As String
    Dim i As Integer

    ' Verifica se a string de entrada está vazia
    If icText = "" Then
        Decrypt = ""
        Exit Function
    End If

    icLen = Len(icText)

    ' Loop através de cada caractere da string
    For i = 1 To icLen
        icChar = Mid(icText, i, 1)

        ' Descriptografia baseada no valor ASCII dos caracteres
        Select Case Asc(icChar)
            Case 192 To 217 ' Letras maiúsculas (A-Z)
                icChar = Chr(Asc(icChar) - 127)
            Case 218 To 243 ' Letras minúsculas (a-z)
                icChar = Chr(Asc(icChar) - 121)
            Case 244 To 253 ' Números (0-9)
                icChar = Chr(Asc(icChar) - 196)
            Case Else ' Outros caracteres
                icChar = Chr(Asc(icChar) - 100) ' Ajuste básico para outros caracteres
        End Select

        ' Concatena o caractere descriptografado à nova string
        icNewText = icNewText & icChar
    Next

    Decrypt = icNewText

End Function



Exemplos de Uso

Armazenamento de Senhas em Planilhas: Quando você precisa armazenar senhas ou chaves de API em uma planilha do Excel, usar o código VBA para criptografar essas informações ajuda a protegê-las contra acesso não autorizado.

Proteção de Dados Pessoais: Se você trabalha com dados pessoais, como números de identificação ou informações financeiras, a criptografia desses dados pode ajudar a cumprir os requisitos de conformidade e proteger a privacidade dos indivíduos.

Envio de Planilhas Seguras: Quando você precisa compartilhar uma planilha que contém informações sensíveis com outros colegas ou departamentos, criptografar os dados mais críticos garante que eles permaneçam protegidos, mesmo que a planilha caia em mãos erradas.

Esses exemplos mostram como a ofuscação de senhas e dados sensíveis usando VBA no Excel pode ser uma solução prática e eficiente para melhorar a segurança de informações em seu ambiente de trabalho.

EncryptDecryptFunction.zip 10.91KB

  Clique aqui e nos contate via What's App para avaliarmos seus projetos 

Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com

 Série de Livros nut Project 

DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes


 Série DONUT PROJECT 2024 

DONUT PROJECT 2024 - VBA - Retorna o Valor do Conteúdo da Área de Transferência do Sistema DONUT PROJECT 2024 - VBA - Retorna a Versão do Sistema Operacional em que o Excel está sendo Executado DONUT PROJECT 2024 - VBA - Desenvolvimento de Ferramentas de Análise de Riscos

DONUT PROJECT 2024 - VBA - Desenvolvimento Obter Informações sobre a Versão do Sistema Operacional DONUT PROJECT 2024 - VBA - Automatizando Tarefas de Engenharia e Design DONUT PROJECT 2024 - VBA - Automatização de Processos de Medir Distâncias no Google Maps

DONUT PROJECT 2024 - VBA - Automatização de Processos de Marketing Mail com o GMail DONUT PROJECT 2024 - VBA - Automatização de Processos de Marketing Mail DONUT PROJECT 2024 - VBA - Como proteger e ocultar fórmulas em uma planilha do Excel usando VBA

DONUT PROJECT 2024 - VBA - Código Exporta os dados e Atualiza as Quantidades em Estoque de um Determinado Produto na Planilha "Estoque" Crie Funções Personalizadas com Visual Basic for Applications (VBA) para Análise de Dados nos Negócios Saber programar em Visual Basic for Applications (VBA)



 Série DONUT PROJECT 2021 


DONUT PROJECT 2021 - VBA Function: Sabe como enviar dados para o Google Sheet, através do MS Excel, usando VBA, no MacBook?

DONUT PROJECT 2021 - VBA Function:  Como Rastrear o Google Maps (Coordenadas Geográficas) no VBA Excel? DONUT PROJECT 2021 - VBA Function:  Crie Acrônimos a partir de Strings de Texto DONUT PROJECT 2021 - VBA Function:  Convertendo uma Matrix num Vetor - Convert Matrix to a Vector

DONUT PROJECT 2021 - VBA Function:  Como tornar o Formulário Transparente no MS Excel? DONUT PROJECT 2021 - VBA Function:  Faça Buscas no Google a Partir da Célula do MS Excel - Search Google From a Cell DONUT PROJECT 2021 - VBA Function:  Decompondo um Nome nas Dimensões de uma Matriz


DONUT PROJECT 2021 - VBA Function: Extraindo o Último Sobrenome de um Nome Completo ou a Última Palavra de uma Frase DONUT PROJECT 2021 - VBA Function:  Extraindo o Segundo Nome de um Nome Completo ou a Segunda Palavra de uma Frase DONUT PROJECT 2021 - VBA Function: Extraindo o Primeiro Nome ou  a Primeira Palavra de uma Frase



 Série DONUT PROJECT 2018 

DONUT PROJECT 2018 - VBA - 12 - Aumente sua Produtividade DONUT PROJECT 2018 - VBA - 10 - Loop For-Each DONUT PROJECT 2018 - VBA - 08 - Referenciando Ranges


DONUT PROJECT 2018 - VBA - 07 - Amostra de Macro  DONUT PROJECT 2018 - VBA - 06 - Recursos Adicionais DONUT PROJECT 2018 - VBA - 05 - Gravando a Primeira Macro

DONUT PROJECT 2018 - VBA - 04 - Opções de Solução DONUT PROJECT 2018 - VBA - 03 - Requisitos e Preparação DONUT PROJECT 2018 - VBA - 02 - Continua Cético

DONUT PROJECT 2018 - VBA - 01 - Maximizando Sua Eficiência DONUT PROJECT 2018 - Excel - Ao Gravar Macro Altere o Método SELECT por RANGE 


 DONUT PROJECT 2018 - Excel - Acelerando as Macros - Desativando os Recursos de Atualização



 Série DONUT PROJECT 2015 

DONUT PROJECT 2015 - Excel - Formatting A Pivot Field's Data - Formatando os Campos de uma Tabela Dinâmica DONUT PROJECT 2015 - Excel - Formatting A Pivot Table's Data - Formatando os Dados de um Tabela Dinâmica DONUT PROJECT 2015 - Excel - Expand/Collapse Entire Field Detail - Ampliando Detalhadamente os Campos da Tabela Dinâmica

DONUT PROJECT 2015 - Extraindo e-Mails - Extracting An Email Address From Text   DONUT PROJECT 2015 - Função - Extraindo Quaisquer Elementos de uma String a Partir do Limitador DONUT PROJECT 2015 - Função - Retorna o número de ocorrências de um caracter numa string

DONUT PROJECT 2015 - Função - Retorna Qualquer Conteúdo Delimitado por 2 Caracteres  DONUT PROJECT 2015 - Função - Retorna Apenas o Conteúdo Entre Parênteses DONUT PROJECT 2015 - Função - Extrai Conteúdo entre Parênteses

DONUT PROJECT 2015 - Excel - Report Layout DONUT PROJECT 2015 - Excel - Grand Totals - Inserindo Totais para todas as Colunas e Linhas na Tabela Dinâmica DONUT PROJECT 2015 - Excel - Change Pivot Table Data Source Range - Mudando a Fonte de Dados da Tabela Dinâmica

DONUT PROJECT 2015 - Excel - Refresh Pivot Tables - Aplicando Refresh em Tabelas Dinâmicas DONUT PROJECT 2015 - How To Create Partially Anonymous Data - Como Manter Informações parcialmente Anônimas  DONUT PROJECT 2015 - Excel - Clear Report Filter - Limpando o Filtro da Tabela Dinâmica

DONUT PROJECT 2015 - Excel - Report Filter On Multiple Items - Criando Filtros Múltiplos na Tabela Dinâmica DONUT PROJECT 2015 - Excel - Report Filter On A Single Item - Criando Filtro de Relatório na Tabela Dinâmica DONUT PROJECT 2015 - Excel - Remove Calculated Pivot Fields - Removendo Campos Calculados da Tabela Dinâmica

DONUT PROJECT 2015 - Excel - Remove Pivot Fields - Removendo Campos da Tabela Dinâmica  DONUT PROJECT 2015 - Excel - Add A Values Field - Adicionando Campos Calculados na Tabela Dinâmica DONUT PROJECT 2015 - Excel - Add Calculated Pivot Fields - Adicionando Campos Calculados na Tabela Dinâmica

DONUT PROJECT 2015 - Excel - Add Pivot Fields - Adicionado Campos na Tabela Dinâmica DONUT PROJECT 2015 - Excel - Delete All Pivot Tables - Apagando todas as Tabelas Dinâmicas DONUT PROJECT 2015 - Excel - Delete A Specific Pivot Table - Apague um Tabela Dinâmica Específica


DONUT PROJECT 2015 - VBA To Add A Confidentiality Footer Statement In Excel, Word, or PowerPoint - Adicionando um Rodapé com Status de Confidencialidade no Excel, Word ou PowerPoint DONUT PROJECT 2015 - Excel - Create A Pivot Table - Criando uma Tabela Dinâmica


 Série DONUT PROJECT 2014 

DONUT PROJECT 2014 - Use os add-ins do MS Excel e dê um salto em sua performance DONUT PROJECT 2014 - VBA - Automatizando o Outlook para enviar um e-mail com anexo  DONUT PROJECT 2014 - VBA - Outlook - Salvando todos os arquivos anexados nos e-mails


DONUT PROJECT 2014 - VBA - Criando uma Matriz de Datas MAT - Moving Annual Total  DONUT PROJECT 2014 - VBA - Excel - Atualizando Tabelas Dinâmicas - Refresh Pivot Table via VBA DONUT PROJECT 2014 - VBA - Excel - Removendo os Caracteres Alfabéticos e Especiais


DONUT PROJECT 2014 - VBA - Access - Criando uma Query com Parâmetros DONUT PROJECT 2014 - VBA - Access - Atualizando o conteúdo de uma Query DONUT PROJECT 2014 - VBA - Access - Saiba o Número de Registro de cada tabela


DONUT PROJECT 2014 - VBA - Access - Extraia Blocos de Dados do Banco de Dados - Sem Problemas de TIMEOUT DONUT PROJECT 2014 - VBA - Access - Lista o Tamanho de Todas as Tabelas DONUT PROJECT 2014 - VBA - Excel - Populando um ListBox no seu Formulário

DONUT PROJECT 2014 - VBA - Excel - Importando arquivos CSV  DONUT PROJECT 2014 - VBA - Excel - Deletando Conexões de Dados  DONUT PROJECT 2014 - VBA - Excel - Obtendo o Nome da Planilha sem a Extensão - Get name of workbook without extension


DONUT PROJECT 2014 - VBA - WORD - Exportação Automatizada - De *.docx Para *.pdf - Otimizando o tamanho

Nenhum comentário:

Postar um comentário

diHITT - Notícias