1 (изменено: bober132, 2011-03-04 23:06:34)

Тема: VBScript: Вычисление CRC32 строки

Здравствуйте. Недавно столкнулся с потребностью нахождения CRC32 строки в VBS. Т.к его нет на вашем сайте решил выложить его здесь.
Думаю его ещё и под вычисление CRC32 файла можно заточить:)

P.S. Не помню где нашёл код, но он нам был на языке VB, а не VBS. Так что выкладываю без копирайта.

Dim CrcTableInit
Dim CRCTable(255)
 
MsgBox Hex(calcCRC32("GetProcAddress")) 'Пример Использования
Wscript.Quit


Function calcCRC32(TextStr)
    Dim i, crc
    If CrcTableInit = False Then Call Init_CRCTable
    crc = -1
    For i = 1 To Len(TextStr)
        crc = (((crc And &HFFFFFF00) \ &H100) And &HFFFFFF) Xor (CRCTable((crc And &HFF) Xor Asc(Mid(TextStr, i, 1))))
    Next
    crc = crc Xor &HFFFFFFFF
    calcCRC32 = crc
End Function
Sub Init_CRCTable()
    Dim i, j, Limit, crc
    Limit = &HEDB88320
    For i = 0 To 255
        crc = i
        For j = 0 To 7
            If crc And 1 Then
              crc = (((crc And &HFFFFFFFE) \ 2) And &H7FFFFFFF) Xor Limit
            Else
              crc = ((crc And &HFFFFFFFE) \ 2) And &H7FFFFFFF
            End If
        Next
        CRCTable(i) = crc
    Next
    CrcTableInit = True
End Sub

2

Re: VBScript: Вычисление CRC32 строки

bober132, спасибо! Но, как бы есть:
* Серый форум / VBScript , определение crc32 файла, Серый форум / JScript: определение crc32 файла
* Серый форум / HTA: вычисление CRC32 строки или файла, обсуждение: Серый форум / HTA: Находим CRC32 файла или строки

Было бы неплохо, если бы Вы сравнили алгоритмы по второму методу (скриптовому), ибо я не смогу сим заняться. Что скажете?

3 (изменено: abasov, 2011-03-05 10:14:57)

Re: VBScript: Вычисление CRC32 строки

alexii пишет:

Было бы неплохо, если бы Вы сравнили алгоритмы

Vbs алгоритма кажется не было...bober132 вероятно это имел ввиду. Был и идентичен вот. Не заметил.

4 (изменено: bober132, 2011-03-05 13:19:56)

Re: VBScript: Вычисление CRC32 строки

abasov, да вы правы, идентичный скрипт есть. Я не смог найти этот код когда искал. Но я бы предпочёл создать отдельную тему, т.к. не каждый человек заходит на тему не касающийся его языка программирования. alexii, этот код не требует подключения ActiveX библиотек в отличии от http://forum.script-coding.com/viewtopic.php?id=2805, http://forum.script-coding.com/viewtopi … 876#p23876, http://forum.script-coding.com/viewtopic.php?id=3827.

5

Re: VBScript: Вычисление CRC32 строки

bober132 пишет:

Но я бы предпочёл создать отдельную тему, т.к. не каждый человек заходит на тему не касающийся его языка программирования.

То есть? Не JScript, а VBScript — в этом смысле? Так ведь по приведённой в #2 ссылке как раз VBScript.

=bober132 пишет:

alexii, этот код не требует подключения ActiveX библиотек в отличии…

Тот код — тоже: Серый форум / VBScript , определение crc32 файла использует WinAPI для вычисления CRC32 содержимого файла, в Серый форум / HTA: вычисление CRC32 строки или файла ActiveX используется только для чтения содержимого файла (опять же, после обсуждения с коллегами [Серый форум / JScript: Двоичные файлы, #11], mozers, перейдя на «TextStream.Read()», полностью убрал зависимость от ADODB.Stream — та же ссылка из  #2).

6

Re: VBScript: Вычисление CRC32 строки

Вопрос уважаемым администраторам: а нельзя ли восстановить ссылку из #2: Серый форум / JScript: определение crc32 файла, а то там только «сообщение»...

7

Re: VBScript: Вычисление CRC32 строки

Восстановить нельзя. Есть в offline Community. Но там всего три сообщения. Держите так: JScript- определение crc32 файла.7z — RGhost — файлообменник.

8 (изменено: Serge Yolkin, 2013-02-10 23:37:35)

Re: VBScript: Вычисление CRC32 строки

Большое спасибо.
Правда, возник другой вопрос: можно ли получить контрольную сумму файла из imagehlp.dll,CheckSumMappedFile с помощью RunDll?

rundll32.exe imagehlp.dll,CheckSumMappedFile imagehlp.dll

ни на что не ругается, значит точку входа находит, хотя ничего и не выводит. По крайней мере в консоль (cmd).

9

Re: VBScript: Вычисление CRC32 строки

…с помощью RunDll?

Нельзя.