Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Можно ли с помощю (.bat) кода узнать MD5 файла? (http://forum.oszone.net/showthread.php?t=302233)

turbolover 09-07-2015 19:12 2527270

Можно ли с помощю (.bat) кода узнать MD5 файла?
 
Можно ли с помощю (.bat) кода узнать MD5 файла?
На пример узнать MD5 файла: (Regedit.exe).

Iska 09-07-2015 19:32 2527276

Вроде как кто-то делал, но сие очень накладно. Используйте стороннюю утилиту, WSH или PowerShell.

gora 09-07-2015 19:37 2527280

Вложений: 1
C помощью сторонней утилиты
Код:

@Echo Off
Set file=c:\Windows\Regedit.exe
For /F %%i In ('md5sum.exe "%file%"') Do Set md5=%%i
Echo %md5%
Pause

Утилита должна лежать рядом со скриптом

Georgio 09-07-2015 20:21 2527288

Код:

@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>


Nordek 10-07-2015 00:48 2527339

Цитата:

Цитата Georgio
@CertUtil »

Не для Windows XP.

В XP придётся применять:
Windows Server 2003 Administration Tools Pack или Windows Server 2003 Service Pack 1 Administration Tools Pack

sov44 28-01-2016 14:00 2600048

Как узнать контрольную сумму MD5-Digest, SHA1-Digest файла с помощью командной строки?

mwz 28-01-2016 17:11 2600127

sov44, сообщение с простынёй, за одно до вашего, не помогло? ("Без стронних утилит (сохранить как батник)")

gora 28-01-2016 17:21 2600131

Цитата:

Цитата mwz
сообщение с простынёй, за одно до вашего, не помогло? »

Я пробовал его использовать. Вынул vbs скрипт, его и использовал. При расчете кеша больших файлов (порядка гигабайта и более) система очень сильно грузилась и компьютер фактически повисал. Процесс подсчета сильно затягивался. Пришлось отказаться в пользу сторонних утилит (7z.exe).

mwz 28-01-2016 17:47 2600140

gora, я-то пользую Total Commander — но вопрос был о командной строке, поэтому не упоминал.
А тут спрашивал про использование не про vbs, как у вас, а про cmd (bat).

sov44 28-01-2016 18:30 2600151

Цитата:

Цитата mwz
sov44, сообщение с простынёй, за одно до вашего, не помогло? »

Нет. Мне нужен MD5-Digest, а не MD5. Немного "поправил" расширение, оно не устанавливается, т.к. перестали совпадать контрольные в manifest.mf. Удаление манифеста не помогло.

mwz 28-01-2016 19:22 2600173

Цитата:

Цитата sov44
Нет. Мне нужен MD5-Digest, а не MD5. »

http://webtoolkitonline.com/md5-digest-message.html — проверил; не увидел разницы между MD5-Digest и MD5 Sum, в т.ч. сравнив их.
Может не разобрался... Хотя из http://re.mipt.ru/infsec/2004/essay/...Strelnikov.pdf вроде бы следует то же самое.

Iska 28-01-2016 23:32 2600239

Цитата:

Цитата sov44
Нет. Мне нужен MD5-Digest, а не MD5. »

Присоединюсь к вопросу — а в чём именно разница, где можно об этом почитать?

sov44 29-01-2016 00:03 2600254

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

Iska 29-01-2016 01:18 2600272

sov44, насколько я понимаю, это самый обычный MD5 и самый обычный SHA1, в строках MD5-Digest/SHA1-Digest должно быть записано их Base64 представление.

mwz 29-01-2016 11:51 2600363

Цитата:

Цитата Iska
в строках MD5-Digest/SHA1-Digest должно быть записано их Base64 представление. »

sov44
На что и намекает знак равенства в конце обеих строк первого кода. Однако число символов в MD5-Digest здесь существенно меньше 32 (т.е. в самой MD-5 сумме), и тем более меньше 44 в её Encoding: base64. Т.е. это дополнительная свёртка самой суммы MD-5 (ну и SHA1 тоже) — но вопрос, по какому алгоритму.

Iska 29-01-2016 11:56 2600365

Да, хотелось бы увидеть существующие корректные образцы, дабы поиграться.

rakdm 18-10-2018 15:23 2836458

помогите допилить функцию для работы:
-сторонними ПО пользоваться нельзя.
задача получить хэш 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
наверно это просто - прост не шарю.

alpap 18-10-2018 16:04 2836462

rakdm,
Код:

certUtil -hashfile "file.txt" MD5|find /v ":"|clip
скрытый запуск ищите поиском, разбиралось столько раз уже, что за вас искать уже будет неправильно.

Iska 18-10-2018 19:30 2836498

Цитата:

Цитата rakdm
- как сделать, чтоб запуска cmd вообще не было видно? »

Элементарно: не использовать cmd.

Цитата:

Цитата rakdm
Чтоб в буфер обмена копировался только хеш »

Фильтровать «лишние» строки. Пример — в предыдущем сообщении.


Время: 01:14.

Время: 01:14.
© OSzone.net 2001-