Criptografia de Arquivo utilizando o Script Bash [encrypt.sh] no Windows

Encryption

Visão Geral

O FastSitePHP inclui a habilidade de criptografar arquivos utilizando ambos uma Classe PHP e um Script Bash compatível. Bash é o shell padrão em várias distribuições Linux e no macOS; e está também amplamente disponível em outros SOs baseados em Unix como os BSDs (FreeBSD, NetBSD, OpenBSD, DragonFlyBSD etc)

Windows 10, Windows Server 1709 e mais recentes, fornecem suporte ao Subsistema Windows para Linux (WSL) que permite programas Linux, Scripts Bash e mais rodarem no Windows.

Este documento mostra a execução do script [encrypt.sh] no WSL e pode ser utilizado como uma referência geral para rodar Scripts Bash no Windows.

API de Criptografia de Arquivo e o Script Bash

Links sobre o Subsistema Windows para Linux (WSL)

Copiando Arquivos ou Enviando o Script

Estas capturas de tela foram criadas em uma Instância EC2 do Windows Server 1709 (Nano Server) em um Serviço Web da Amazon (AWS).

Para copiar arquivos para o Windows Nano Server você pode utilizar o Powershell, contudo, se o Powershell não for uma opção e você precisar copiar um arquivo texto, você poe abrir uma instância do Notepad digitando notepad.exe na linha de comando do Windows antes de logar no Linux.

Neste exemplo o arquivo [encrypt.sh] foi salvo na pasta [C:\Users\Administrator\Documents]; e no Linux você pode acessar a Unidade C (ou outras unidades) à partir de [/mnt/], being [/mnt/c] for the C: drive.

Para rodar um script bash navegue até o diretório do script e então execute bash {script} ou ./{script}.

Você pode ver que neste exemplo houve um erro quando ao rodar pela primeira vez. Isto aconteceu por que o Windows Notepad salvou o Script Bash com Quebras de Linha Windows (CR/LF) ao invés de Quebras de Linha Unix (LF); para consertar isso rode o comando sed -i 's/\r$//' encrypt.sh. Assim, o script rodará como o esperado.

Windows Nano Server - Abrir o Notepad e Criar o Script

Rodando o Script

Quando você roda o script sem quaisquer opções, utilizando uma das formas bash encrypt.sh ou ./encrypt.sh, ou se você utiliza a opção -h, então você verá a tela de ajuda que fornece um visão geral do script, opções de utilização e exemplos de como utilizá-lo.

Ajuda para Criptografar Script Bash

Rodando Testes de Unidade

A opção -t rodará Testes de Unidade para confirmar que o script funciona em seu ambiente.

Testes de Unidade de Criptografia de Script Bash

Testes de Unidade de Criptografia de Script Bash

Criptografando Arquivos Grandes

Um teste com arquivo grande utilizando a opção -l criará, criptografará e descriptografará arquivos de 1Gb a 3GB e confirma que seu sistema pode rodar arquivos de qualquer tamanho. Isto é o ideal para criptografar backups por que você pode 'zipar' ou comprimir muitos arquivos para um grande arquivo compactado e então criptografa utilizando o script.

Teste de Criptografia de Arquivos Grandes com Script Bash