-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathget_file_hashes.ps1
104 lines (93 loc) · 3.21 KB
/
get_file_hashes.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# Script used to get the hash of a file.
function GetMD5Hash {
Add-Type -AssemblyName System.Windows.Forms
$filebrowser = New-Object Windows.Forms.OpenFileDialog
$filebrowser.InitialDirectory = Get-Location
$filebrowser.Filter = "All Files (*.*)|*.*"
$filebrowser.ShowHelp = $true
$filebrowser.Multiselect = $true
[void]$filebrowser.ShowDialog()
if ($filebrowser.Multiselect) { $Source = @($filebrowser.FileNames) } else { $Source = @($filebrowser.FileName) }
# Get MD5 checksums
foreach ($item in ($Source)) {
Get-FileHash "$item" -Algorithm MD5 | Format-List
}
}
function GetSHA1Hash {
Add-Type -AssemblyName System.Windows.Forms
$filebrowser = New-Object Windows.Forms.OpenFileDialog
$filebrowser.InitialDirectory = Get-Location
$filebrowser.Filter = "All Files (*.*)|*.*"
$filebrowser.ShowHelp = $true
$filebrowser.Multiselect = $true
[void]$filebrowser.ShowDialog()
if ($filebrowser.Multiselect) { $Source = @($filebrowser.FileNames) } else { $Source = @($filebrowser.FileName) }
# Get MD5 checksums
foreach ($item in ($Source)) {
Get-FileHash "$item" -Algorithm SHA1 | Format-List
}
}
function GetSHA256Hash {
Add-Type -AssemblyName System.Windows.Forms
$filebrowser = New-Object Windows.Forms.OpenFileDialog
$filebrowser.InitialDirectory = Get-Location
$filebrowser.Filter = "All Files (*.*)|*.*"
$filebrowser.ShowHelp = $true
$filebrowser.Multiselect = $true
[void]$filebrowser.ShowDialog()
if ($filebrowser.Multiselect) { $Source = @($filebrowser.FileNames) } else { $Source = @($filebrowser.FileName) }
# Get MD5 checksums
foreach ($item in ($Source)) {
Get-FileHash "$item" -Algorithm SHA256 | Format-List
}
}
function GetSHA512Hash {
Add-Type -AssemblyName System.Windows.Forms
$filebrowser = New-Object Windows.Forms.OpenFileDialog
$filebrowser.InitialDirectory = Get-Location
$filebrowser.Filter = "All Files (*.*)|*.*"
$filebrowser.ShowHelp = $true
$filebrowser.Multiselect = $true
[void]$filebrowser.ShowDialog()
if ($filebrowser.Multiselect) { $Source = @($filebrowser.FileNames) } else { $Source = @($filebrowser.FileName) }
# Get MD5 checksums
foreach ($item in ($Source)) {
Get-FileHash "$item" -Algorithm SHA512 | Format-List
}
}
function InteractiveMenu {
function Show-Menu {
param (
[string]$Title = 'Configuration Options'
)
Clear-Host
Write-Host "================ $Title ================"
Write-Host "1: Press '1' to get Md5 hash."
Write-Host "2: Press '2' to get SHA1 hash."
Write-Host "3: Press '3' to get SHA256 hash."
Write-Host "4: Press '4' to get SHA512 hash."
Write-Host "q: Press 'q' to quit."
}
do {
Show-Menu
$selection = Read-Host "Select an option"
switch ($selection) {
'1' {
GetMD5Hash
}
'2' {
GetSHA1Hash
}
'3' {
GetSHA256Hash
}
'4' {
GetSHA512Hash
}
}
Pause
}
until ($selection -eq 'q')
}
# Call functions
InteractiveMenu