MD5 exact column comparison

Welcome Forums General PowerShell Q&A MD5 exact column comparison

This topic contains 3 replies, has 3 voices, and was last updated by

 
Participant
3 weeks, 5 days ago.

  • Author
    Posts
  • #166549

    Participant
    Topics: 1
    Replies: 1
    Points: 6
    Rank: Member

    I have two text file and in this txt files there is an md5 checksums of some backup files. I am trying to compare this text files and if md5 is same I am try to adding near "-2" if it is different adding "-1" but the problem is directories are different that is why when I compare results being always -1. How can I choose exactly MD5 place in the file? Probably if I can change the [System.IO.File]::ReadAllText('C:\Users\trerulug\Documents\Inventory1\Inventory.txt') in the code it can be work.  Output :

    MD5 C1FA0C20EEFD90076AEFAAB199D854B9 C:\Users\william\Documents\Inventory\12348318433batch.xml

    MD5 C1FA0C20EEFD90076AEFAAB199D854B9 C:\Users\william\Documents\Inventory2\12348318433batch.xml,-1

    MD5 86CA06D361850A9385CA475E133E4182 C:\Users\william\Documents\Inventory\12348318433batch.xml.xml

    MD5 86CA06D361850A9385CA475E133E4182 C:\Users\william\Documents\Inventory2\12348318433batch.xml.xml,-1

    MD5 A75515C272B4716FB160DDA644BC9955 C:\Users\william\Documents\Inventory\12348318433batch.xml

    MD5 A75515C272B4716FB160DDA644BC9955 C:\Users\william\Documents\Inventory2\12348318433batch.xml,-1

     & {

    $ErrorActionPreference  = 'Stop'

    $OFS  = ','

    try

    {

    $To = [System.IO.File]::ReadAllText('C:\Users\trerulug\Documents\Inventory1\Inventory.txt')

    $From = & {

    if ( -not $To.EndsWith([System.Environment]::NewLine) ) { " }

    Get-Content -Path C:\Users\william\Documents\Inventory2\Inventory.txt |

    ForEach-Object { "$($_, @(-1, -2)[[int]$To.Contains($_)])" }

    }

    Add-Content -Path C:\Users\william\Documents\Inventory1\Inventory.txt – Value $From

    Get-Content -Path C:\Users\trerulug\Documents\Inventory1\Inventory.txt

    } catch  {

    $_ | Out-String | Write-Warning
    }

    }

    Expected Output:

    MD5 C1FA0C20EEFD90076AEFAAB199D854B9 C:\Users\william\Documents\Inventory\12348318433batch.xml

    MD5 86CA06D361850A9385CA475E133E4182 C:\Users\william\Documents\Inventory2\12348318433batch.xml.xml

    MD5 A75515C272B4716FB160DDA644BC9955 C:\Users\william\Documents\Inventory2\12348318433batch.xml

    MD5 C1FA0C20EEFD90076AEFAAB199D854B9 C:\Users\william\Documents\Inventory2\12348318433batch.xml,-2

    MD5 86CA06D361850A9385CA475E133E4182 C:\Users\william\Documents\Inventory2\12348318433batch.xml.xml,-2

    MD5 A75515C272B4716FB160DDA644BC9955 C:\Users\william\Documents\Inventory2\12348318433batch.xml,-2

    
    
    		
    	
  • #167032

    Participant
    Topics: 1
    Replies: 17
    Points: 59
    Rank: Member

    Could you tell us a bit more about what you're trying to achieve?  Are you looking for a match by MD5 value for any filename or does it need to match both the MD5 and the filename?

  • #167155

    Participant
    Topics: 1
    Replies: 1
    Points: 6
    Rank: Member

    Yes I want to match MD5's from any filenames and the format is like that : MD5 C1FA0C20EEFD90076AEFAAB199D854B9 C:\Users\william\Documents\Inventory\12348318433batch.xml. I can compare MD5's without directories but I want to compare with directory bu could not do it.

  • #167386

    Participant
    Topics: 2
    Replies: 999
    Points: 1,946
    Helping Hand
    Rank: Community Hero

    PowerShell or any other language notwithstanding, there is no concept of having a directory in Windows object, only this file objects in it.

    So, if you mean you are trying to hash all files in the directory, that is just a loop to get them all individually and hash them.

    Encrypting a directory or files or both, sure, but not hashing the directory object. You'd need a 3RdP tool (freeware or paid) for that sort of thing.

    For example:

    https://idrassi.github.io/DirHash

    DirHash is a Windows console program that computes the hash of a given directory content or a single file. Recursive Lexicographical order is used for browsing the directory hierarchy so that the computed hash can be seen as unique fingerprint of the target directory. Supported hashing algorithms are MD5, SHA-1, SHA-256, SHA-384, SHA-512 and Streebog.

     

You must be logged in to reply to this topic.