turbolover |
09-07-2015 19:12 2527270 |
Можно ли с помощю (.bat) кода узнать MD5 файла?
Можно ли с помощю (.bat) кода узнать MD5 файла?
На пример узнать MD5 файла: (Regedit.exe).
|
Вроде как кто-то делал, но сие очень накладно. Используйте стороннюю утилиту, WSH или PowerShell.
|
Вложений: 1
C помощью сторонней утилиты
Код:
@Echo Off
Set file=c:\Windows\Regedit.exe
For /F %%i In ('md5sum.exe "%file%"') Do Set md5=%%i
Echo %md5%
Pause
Утилита должна лежать рядом со скриптом
|
Код:
@CertUtil -hashfile "%windir%\regedit.exe" MD5| findstr/v :& pause>nul
|
greg zakharov |
09-07-2015 23:07 2527320 |
Цитата:
Цитата turbolover
Можно ли с помощю (.bat) кода узнать MD5 файла?
|
Без стронних утилит (сохранить как батник):
Код:
<!-- ::
@mshta "%~f0"&exit /b
-->
<html>
<head>
<title>Hasher</title>
<meta name="author" content="greg zakharov" />
<hta:application id="iHasher"
applicationname="Hasher"
border="thin"
contextmenu="no"
maximizebutton="no"
minimizebutton="no"
scroll="no"
singleinstance="yes"
sysmenu="yes"
version="1.0" />
<style type="text/css">
html, body {
background: #eee;
font-size: 90%;
margin: 3px 3px;
padding: 0;
}
p {
font-weight: bold;
margin: 1px 1px;
padding: 0;
}
#filename {
width: 100%;
}
</style>
<script language="VBScript">
Sub Resize()
window.resizeTo 430, 130
End Sub
Sub GetHash()
Dim objFile, objSize, objBuff, objType, objHash, objDone
Dim objNS
document.getElementById("result").value = ""
objFile = document.getElementById("filename").value
If objFile = "" Then
alert("Nothing choosed.")
Exit Sub
End If
With CreateObject("Scripting.FileSystemObject")
objSize = .GetFile(objFile).Size
End With
If objSize = 0 Then
alert("Specified file has null length.")
Exit Sub
End If
With CreateObject("SAPI.SpFileStream")
.Open objFile, 0
.Read objBuff, objSize
.Close
End With
For Each h In hash
If h.checked Then
objType = LCase(h.value)
Exit For
End If
Next
objNS = "System.Security.Cryptography."
Select Case objType
Case "md5" Set objHash = CreateObject(objNS & "MD5CryptoServiceProvider")
Case "sha1" Set objHash = CreateObject(objNS & "SHA1Managed")
Case "sha256" Set objHash = CreateObject(objNS & "SHA256Managed")
Case "sha384" Set objHash = CreateObject(objNS & "SHA384Managed")
Case "sha512" Set objHash = CreateObject(objNS & "SHA512Managed")
Case "ripemd160" Set objHash = CreateObject(objNS & "RIPEMD160Managed")
End Select
objType = objHash.ComputeHash_2((objBuff))
For i = 1 To LenB(objType)
objDone = objDone & Right("0" & Hex(AscB(MidB(objType, i, 1))), 2)
Next
document.getElementById("result").value = LCase(objDone)
End Sub
</script>
</head>
<body onload="Resize()">
<p><input type="file" id="filename" onchange="GetHash()" /></p>
<p>
<input type="radio" name="hash" value="MD5" onclick="GetHash()" />MD5
<input type="radio" name="hash" value="SHA1" onclick="GetHash()" />SHA1
<input type="radio" name="hash" value="SHA256" checked="true" onclick="GetHash()" />SHA256
<input type="radio" name="hash" value="SHA384" onclick="GetHash()" />SHA384
<input type="radio" name="hash" value="SHA512" onclick="GetHash()" />SHA512
<input type="radio" name="hash" value="RIPEMD160" onclick="GetHash()" />RIPEMD160
</p>
<textarea cols="49" id="result"></textarea>
</body>
</html>
|
Как узнать контрольную сумму MD5-Digest, SHA1-Digest файла с помощью командной строки?
|
sov44, сообщение с простынёй, за одно до вашего, не помогло? ("Без стронних утилит (сохранить как батник)")
|
Цитата:
Цитата mwz
сообщение с простынёй, за одно до вашего, не помогло? »
|
Я пробовал его использовать. Вынул vbs скрипт, его и использовал. При расчете кеша больших файлов (порядка гигабайта и более) система очень сильно грузилась и компьютер фактически повисал. Процесс подсчета сильно затягивался. Пришлось отказаться в пользу сторонних утилит (7z.exe).
|
gora, я-то пользую Total Commander — но вопрос был о командной строке, поэтому не упоминал.
А тут спрашивал про использование не про vbs, как у вас, а про cmd (bat).
|
Цитата:
Цитата mwz
sov44, сообщение с простынёй, за одно до вашего, не помогло? »
|
Нет. Мне нужен MD5-Digest, а не MD5. Немного "поправил" расширение, оно не устанавливается, т.к. перестали совпадать контрольные в manifest.mf. Удаление манифеста не помогло.
|
Цитата:
Цитата sov44
Нет. Мне нужен MD5-Digest, а не MD5. »
|
Присоединюсь к вопросу — а в чём именно разница, где можно об этом почитать?
|
Iska, для наглядности, из манифеста
Код:
Name: icon64.png
Digest-Algorithms: MD5 SHA1
MD5-Digest: I7n/2sFtqgnztNWs9oXulg==
SHA1-Digest: RRqSHQk5Jnl7jZdoJ7XHblHske4=
с помощью HashTab:
Код:
MD5: 23B9FFDAC16DAA09F3B4D5ACF685EE96
SHA1: 451A921D093926797B8D976827B5C76E51EC91EE
Как определялись взялись цифры в манифесте, самому интересно. файл http://rghost.ru/8qq2CfjkY
К сожалению не знаю иного способа заставить ставится расширение кроме как править контрольные суммы измененных файлов в манифесте. Желающим помочь с расширением - в личку или icq
|
sov44, насколько я понимаю, это самый обычный MD5 и самый обычный SHA1, в строках MD5-Digest/SHA1-Digest должно быть записано их Base64 представление.
|
Цитата:
Цитата Iska
в строках MD5-Digest/SHA1-Digest должно быть записано их Base64 представление. »
|
sov44
На что и намекает знак равенства в конце обеих строк первого кода. Однако число символов в MD5-Digest здесь существенно меньше 32 (т.е. в самой MD-5 сумме), и тем более меньше 44 в её Encoding: base64. Т.е. это дополнительная свёртка самой суммы MD-5 (ну и SHA1 тоже) — но вопрос, по какому алгоритму.
|
Да, хотелось бы увидеть существующие корректные образцы, дабы поиграться.
|
помогите допилить функцию для работы:
-сторонними ПО пользоваться нельзя.
задача получить хэш md5 любого выбранного файла.
добавил в контекстное меню кнопку обозвав "md5" значением: cmd.exe /c @chcp 1251 & CertUtil –hashfile “%1” MD5 | Clip
и вот вопросы:
- как сделать, чтоб запуска cmd вообще не было видно?
- Чтоб в буфер обмена копировался только хеш - чтоб сразу вставлять куда нужно, сейчас выводит:
MD5 хеш файла C:\Users\Администратор\Downloads\A_5omf3cGvM.jpg:
ad 58 b6 de da 58 7b ef bf a2 32 16 5a eb 07 55
CertUtil: -hashfile — команда успешно выполнена.
а нужно: ad 58 b6 de da 58 7b ef bf a2 32 16 5a eb 07 55
наверно это просто - прост не шарю.
|
rakdm,
Код:
certUtil -hashfile "file.txt" MD5|find /v ":"|clip
скрытый запуск ищите поиском, разбиралось столько раз уже, что за вас искать уже будет неправильно.
|
Цитата:
Цитата rakdm
- как сделать, чтоб запуска cmd вообще не было видно? »
|
Элементарно: не использовать cmd.
Цитата:
Цитата rakdm
Чтоб в буфер обмена копировался только хеш »
|
Фильтровать «лишние» строки. Пример — в предыдущем сообщении.
|
Время: 01:14.
© OSzone.net 2001-