Дата последнего изменения может быть изменена по желанию, чтобы попытаться скрыть манипуляции с файлами.См. HeyScriptingGuy для примера .Вы можете хэшировать файлы с минимальной вычислительной мощностью.В качестве теста я запустил следующее:
Создать 100 файлов по 10 МБ каждый.
Add-Type -AssemblyName System.Web
1..100 | %{
#get a random filename in the present working directory
$fn = [System.IO.Path]::Combine($pwd, [GUID]::NewGuid().ToString("N") + '.txt')
#set number of iterations
$count = 10mb/128
#create a filestream
$fs = New-Object System.IO.FileStream($fn,[System.IO.FileMode]::CreateNew)
#create a streamwriter
$sw = New-Object System.IO.StreamWriter($fs,[System.Text.Encoding]::ASCII,128)
do{
#Write the chars plus eol
$sw.WriteLine([System.Web.Security.Membership]::GeneratePassword(126,0))
#decrement the counter
$count--
}while($count -gt 0)
#close the streamwriter
$sw.Close()
#close the filestream
$fs.Close()
}
Создать массив поддерживаемых алгоритмов.Это для PSv4, v5, v5.1 , v6 отброшенных MACTripleDES и RipeMD160
$algorithms = @('MACTripleDES','MD5','RIPEMD160','SHA1','SHA256','SHA384','SHA512')
Хэшируйте все файлы 10 раз для каждого алгоритма и получите среднее.
foreach($algorithm in $algorithms) {
$totalTime = 0
1..10 | ForEach-Object {
$totalTime += measure-command {dir | Get-FileHash -Algorithm $algorithm} | Select-Object -ExpandProperty TotalSeconds
}
[PSCustomObject]@{
Algorithm = $algorithm
AverageTime = $totaltime/10
}
}
Результаты для 100 файлов размером 10 МБ
Algorithm AverageTime
--------- -----------
MACTripleDES 42.44803523
MD5 3.50319849
RIPEMD160 9.58865946
SHA1 3.94368417
SHA256 7.72123966
SHA384 5.61478894
SHA512 5.62492335
Результаты для 10 файлов размером 100 МБ
Algorithm AverageTime
--------- -----------
MACTripleDES 43.82652673
MD5 3.40958188
RIPEMD160 9.25260835
SHA1 3.74736209
SHA256 7.19778535
SHA384 5.17364897
SHA512 5.17803741
Я бы порекомендовал запустить аналогичный тест в ваших системах, чтобы увидетькакое влияние будет.Также из документации: «Из соображений безопасности MD5 и SHA1, которые больше не считаются безопасными, должны использоваться только для простой проверки изменений и не должны использоваться для генерации хеш-значений для файлов, которые требуют защиты от атак или взлома».