Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Получение хеша MD5 файлов из выбранной папки. - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение хеша MD5 файлов из выбранной папки. (Макросы/Sub)
Получение хеша MD5 файлов из выбранной папки.
ArtyLight Дата: Воскресенье, 10.03.2019, 18:37 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Привет!
Имеется макрос который нарыл на просторах интернет, он сейчас собирает информацию о файлах в указанной папке. Но еще нужно как то прикрутить к этому макросу чтобы он считал хеш MD5 и добавлял в соотвествующий столбик.
Нашел как можно посмотреть хеш через командную строку но как это прикрутить к макросу не понимаю

Прошу помощи в данном вопросе, возможно есть другой способ получения хеша файла.
Это нужно для подготовки ИУЛ (информационно удостоверяющий лист) который содержит информацию о файле включая хеш.

Заранее благодарен

MS Office Office 2010 x64 версия 14.0.7015.1000


Сообщение отредактировал ArtyLight - Воскресенье, 10.03.2019, 18:39
 
Ответить
СообщениеПривет!
Имеется макрос который нарыл на просторах интернет, он сейчас собирает информацию о файлах в указанной папке. Но еще нужно как то прикрутить к этому макросу чтобы он считал хеш MD5 и добавлял в соотвествующий столбик.
Нашел как можно посмотреть хеш через командную строку но как это прикрутить к макросу не понимаю

Прошу помощи в данном вопросе, возможно есть другой способ получения хеша файла.
Это нужно для подготовки ИУЛ (информационно удостоверяющий лист) который содержит информацию о файле включая хеш.

Заранее благодарен

MS Office Office 2010 x64 версия 14.0.7015.1000

Автор - ArtyLight
Дата добавления - 10.03.2019 в 18:37
bmv98rus Дата: Воскресенье, 10.03.2019, 20:48 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2467
Репутация: 424 ±
Замечаний: 0% ±

Excel 2013/2016
[vba]
Код
Function GetMD5(ByVal FilePath As String) As String
GetMD5 = Split(CreateObject("WScript.Shell"). _
    Exec("Certutil -hashfile """ & FilePath & """ MD5").StdOut.ReadAll, vbCrLf)(1)
End Function
[/vba]

но лучше прямо через VBA, Смотрите например тут тут


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Воскресенье, 10.03.2019, 22:32
 
Ответить
Сообщение[vba]
Код
Function GetMD5(ByVal FilePath As String) As String
GetMD5 = Split(CreateObject("WScript.Shell"). _
    Exec("Certutil -hashfile """ & FilePath & """ MD5").StdOut.ReadAll, vbCrLf)(1)
End Function
[/vba]

но лучше прямо через VBA, Смотрите например тут тут

Автор - bmv98rus
Дата добавления - 10.03.2019 в 20:48
ArtyLight Дата: Воскресенье, 10.03.2019, 22:02 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо! В какую часть макроса вставить эту функцию?
но лучше прямо через VBA
- тут помоему получают хеш текста а не файла.
 
Ответить
СообщениеСпасибо! В какую часть макроса вставить эту функцию?
но лучше прямо через VBA
- тут помоему получают хеш текста а не файла.

Автор - ArtyLight
Дата добавления - 10.03.2019 в 22:02
bmv98rus Дата: Воскресенье, 10.03.2019, 22:44 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2467
Репутация: 424 ±
Замечаний: 0% ±

Excel 2013/2016
В какую часть макроса вставить эту функцию?

функцию добавить до или после основного макроса а в теле , ну например так
[vba]
Код
        Cells(r, 6) = GetMD5(FileItem.Path)
[/vba]


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
В какую часть макроса вставить эту функцию?

функцию добавить до или после основного макроса а в теле , ну например так
[vba]
Код
        Cells(r, 6) = GetMD5(FileItem.Path)
[/vba]

Автор - bmv98rus
Дата добавления - 10.03.2019 в 22:44
krosav4ig Дата: Воскресенье, 10.03.2019, 23:35 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 2148
Репутация: 893 ±
Замечаний: 0% ±

Excel 2007,2010,2013
посмотреть хеш через командную строку
а оно надо?
[vba]
Код
Function FileMD5$(sFilePath$)
    On Error GoTo err
    Dim byteArr() As Byte, B As Variant, sTmp$
    With CreateObject("adodb.stream")
        .Type = 1: .Open: .LoadFromFile sFilePath
        byteArr = .read
    End With
    With CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
        For Each B In .ComputeHash_2(byteArr)
            sTmp = sTmp & UCase(Right("0" & Hex(B), 2))
        Next
    End With
    Erase byteArr
    FileMD5 = sTmp
    Exit Function
err: Debug.Print "Ну не шмогла я, не шмогла"
End Function
[/vba]

[vba]
Код
Function FileMD5$(sFilePath$)
    On Error GoTo err
    Dim byteArr() As Byte
    With CreateObject("adodb.stream")
        .Type = 1: .Open: .LoadFromFile sFilePath
        byteArr = .read
    End With
    With CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
        FileMD5 = Join(Application.Dec2Hex(.ComputeHash_2(byteArr), 2), "")
    End With
    Erase byteArr
    Exit Function
err: Debug.Print "Ну не шмогла я, не шмогла"
End Function
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Воскресенье, 10.03.2019, 23:53
 
Ответить
Сообщение
посмотреть хеш через командную строку
а оно надо?
[vba]
Код
Function FileMD5$(sFilePath$)
    On Error GoTo err
    Dim byteArr() As Byte, B As Variant, sTmp$
    With CreateObject("adodb.stream")
        .Type = 1: .Open: .LoadFromFile sFilePath
        byteArr = .read
    End With
    With CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
        For Each B In .ComputeHash_2(byteArr)
            sTmp = sTmp & UCase(Right("0" & Hex(B), 2))
        Next
    End With
    Erase byteArr
    FileMD5 = sTmp
    Exit Function
err: Debug.Print "Ну не шмогла я, не шмогла"
End Function
[/vba]

[vba]
Код
Function FileMD5$(sFilePath$)
    On Error GoTo err
    Dim byteArr() As Byte
    With CreateObject("adodb.stream")
        .Type = 1: .Open: .LoadFromFile sFilePath
        byteArr = .read
    End With
    With CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
        FileMD5 = Join(Application.Dec2Hex(.ComputeHash_2(byteArr), 2), "")
    End With
    Erase byteArr
    Exit Function
err: Debug.Print "Ну не шмогла я, не шмогла"
End Function
[/vba]

Автор - krosav4ig
Дата добавления - 10.03.2019 в 23:35
bmv98rus Дата: Понедельник, 11.03.2019, 07:41 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2467
Репутация: 424 ±
Замечаний: 0% ±

Excel 2013/2016
Прикольно то, что вроде и итог одинаков, но разный если сравнивать тупо
[vba]
Код
1d36b7f799f673bf45370d0af4c3f4c8
[/vba]
[vba]
Код
1D36B7F799F673BF45370D0AF4C3F4C8
[/vba]


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Понедельник, 11.03.2019, 07:42
 
Ответить
СообщениеПрикольно то, что вроде и итог одинаков, но разный если сравнивать тупо
[vba]
Код
1d36b7f799f673bf45370d0af4c3f4c8
[/vba]
[vba]
Код
1D36B7F799F673BF45370D0AF4C3F4C8
[/vba]

Автор - bmv98rus
Дата добавления - 11.03.2019 в 07:41
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение хеша MD5 файлов из выбранной папки. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2019 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!