Gerador md5 de linha de comando recursivo e verificador

2

Eu quero escrever um script em lote que tenha a capacidade de gerar e verificar hashes md5 de uma árvore de diretórios inteira. Existe algum programa como este para o windows?

Eu posso encontrar muitos programas md5, mas eles não verificam ou se repetem.

    
por Synaps3 17.02.2015 / 03:10

3 respostas

2

então, se você estiver familiarizado com a linha de comando

FileList do link

filelist /?

FileList V2.0

Prints a list of all files in a file system branch

FILELIST [/OPTION] [/FILTER pattern1;pattern2;...] Path [>list.csv]

/OWNERS       Adds a coluimn with the file owners (slower)
/NOHEADER     Leaves out the column headers and only prints the raw data
/ATTRIBUTES   Includes the attributes that are set for each files
/MD5          Adds a column wit the MD5 checksum of each file
/AUTHORS      Additionally extracts name of the author from MS Office documents
/LASTSAVEDATE Additionally extracts the last save date from MS Office documents
/FILTER       Allows to specify one or more filters, separated with semicolons

For example: filelist /md5 C:\temp > list.csv

Add new files then run again filelist /md5 C:\temp > list2.csv 

ou md5deep do link

 md5deep.exe -r C:\temp >> md5hashes1.txt modify files and run again
 md5deep.exe -r C:\temp >> md5hashes2.txt

agora apenas compare list.csv com list2.csv no excel ou com qualquer utilitário diff (Windifff por exemplo)

caso contrário, vá para:

MD5summer do link

ou

hksfv do link

    
por 12.05.2015 / 11:41
0

Por que reinventar a roda? Como você disse especificamente que estava procurando um aplicativo do Windows, recomendo HashCheck Shell Extension

Ele pode fazer tudo o que você pede e é muito leve em recursos.

    
por 17.02.2015 / 03:31
0

Eu não acho que você possa fazer isso, desculpe. Um hash md5 é um hash de um fluxo de bytes, mas uma árvore de diretórios não é um fluxo de bytes. Uma pasta é um índice de arquivos (que são fluxos de bytes) e outras pastas. Agora, tecnicamente, as pastas são apenas arquivos, mas não há uma ordem "predeterminada" para todos os arquivos, portanto, não acho que seja possível.

Então, acho que primeiro você precisa codificar o diretório em um único fluxo de bytes (ou seja, arquivo). Uma versão de linha de comando do zip ou winRar fará isso. Se a velocidade é um problema, existem opções para não fazer qualquer compressão. Há provavelmente uma porta do Windows de tar também, ou talvez até mesmo um equivalente nativo do Windows (arquivos .cab?). Eu provavelmente iria com 7zip e usaria o comamndline 7z.exe (incluído no instalador)

link

Assim, seu script pode criar o arquivo único e, em seguida, obter o hash MD5 disso. E, em seguida, seu script pode excluir o arquivo único. Não é exatamente o que você quer, mas acho que é sua melhor opção.

    
por 17.02.2015 / 03:35