PowerShell: Criando Lista de Códigos Hash
Atualizado: 24 de out. de 2023
A criação de um código hash em um arquivo antes de enviá-lo para alguém é uma medida de segurança fundamental. Esse código é uma representação única dos dados do arquivo e permite verificar sua integridade. Ao enviar um arquivo com um código hash, o destinatário pode comparar o código recebido com o código gerado a partir do arquivo original. Se os códigos coincidirem, isso garante que o arquivo não foi alterado durante a transferência, protegendo contra modificações não autorizadas e garantindo a autenticidade e confiabilidade dos dados compartilhados.
Antes de utilizar o script para criar a lista de códigos hash no PowerShell contido neste post, você precisa habilitar a execução deles. Clique na imagem abaixo para ver como.
Uma vez habilitada a execução de scripts, crie um arquivo com a extensão *.ps1 e cole o código:
$diretorio = "seu_dir"
$listaInformacoes = @()
# Obter a lista de arquivos no diretório
$listaArquivos = Get-ChildItem -Path $diretorio
# Para cada arquivo na lista, obter informações e adicionar à lista
foreach ($arquivo in $listaArquivos) {
$hash = Get-FileHash -Path $arquivo.FullName -Algorithm SHA256
$dataModificacao = $arquivo.LastWriteTime
$linha = "$($arquivo.DirectoryName)`t$($arquivo.Name)`t$($hash.Hash)`t$dataModificacao"
$listaInformacoes += $linha
}
# Salvar a lista de informações em um arquivo de texto
$listaInformacoes | Out-File -FilePath $diretorio"\_HASH.txt"
Substitua seu_dir pelo diretório dos arquivos e altere o algoritmo (está SHA256) caso deseje. Caso seu código esteja retornando erro por conta da codificação do arquivo, experimente executar:
powershell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-Content -Path .\seu_codigo.ps1 -Value (Get-Content -Path .\seu_codigo.ps1 -Encoding UTF8) -Encoding UTF8 ; .\seu_codigo.ps1}"
Substitua seu_codigo pelo nome do arquivo. Você deve usar esses comandos para abrir um arquivo .ps1 no PowerShell com codificação UTF-8 no Prompt de Comando porque eles garantem que o arquivo seja interpretado corretamente e evita problemas de caracteres especiais ou acentuados em seu código. Essa abordagem garante que o PowerShell compreenda a codificação do arquivo e execute o script corretamente.
Veja no vídeo abaixo como executar este script de forma simples:
Gostou do conteúdo? Compartilhe!
Comentários