powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / SOS - MD5 от Robert Hubley.
10 сообщений из 10, страница 1 из 1
SOS - MD5 от Robert Hubley.
    #33921895
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разогнался использовать код MD5 от Robert Hubley, тот, что любезно выложен на http://www.bullzip.com/md5/vb/md5-visual-basic.htm ...

Оказалось, что для строк длинной больше 120 символов он дает неправильные результаты, а именно: MD5 получается одно и то же для разных окончаний (начиная с 121-го символа) строки!

Что делать, куда бежать?

PS. А ведь от этого кода, сдается мне, много "производных" (на разных языках) по сети предагается ...
...
Рейтинг: 0 / 0
SOS - MD5 от Robert Hubley.
    #33922056
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тынц.
MD5, SHA-512bit в одном лице. Все бы хорошо, да только такие скорости выполнения нам еще не по зубам... Сразу рекомендую вставить где-нибудь DoEvents, приправленную MousePointer = vbHourGlass/vbNormal, - иначе вам удачи не видать...
Тынц.
15 наипопулярнейших алгоритмов шифрования: Blowfish, Twofish, Rijndael, Skipjack, Serpent, Gost, RC2, RC4, TEA, DES, 3DES, 3DES112, DESE, CAST5, IDEA), 6 односторонних хэш-алгоритмов: MD2, MD4, MD5, SHA, SHA256, RipeMD плюс сжатие по Хаффману. Откомпилированная DLL и хелп (CHM) прилагаются. Must Have!
Тынц
MD5, алгоритм вычисления хеша, известен настолько, что мне не приходится его описывать здесь... Пользователи PHP уже успели им вдоволь попользоваться в различных Секъюрити-целях на серверах... А программисты на VB все кусали локти, сочиняя свои ключики (ака пароли) - См. МК о шифровании - однако не все так плохо: отныне есть возможность вычисления MD5-хешей прямо из VB! Архив включает библиотеку, ее исходник - все это и на Cpp, и на VB6! No Comments... Хотя этот как раз от Хабли.
...
Рейтинг: 0 / 0
SOS - MD5 от Robert Hubley.
    #33922257
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, буду смотреть. Ну и, естественно, сразу проверять на длинных строках! ;-)
...
Рейтинг: 0 / 0
SOS - MD5 от Robert Hubley.
    #33922487
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тынц-тынц-тынц ...

Robert_Hubley там не в одном архиве, а в двух! Естественно, оба кривые, как и тот, что - от века - был у меня.

А в третьем - от Ian Lynagh - и того круче: строка MD5 получается разной длины, - короче, чем нужно, на несколько символов!

Robert_Hubley - он хотя бы на коротких строках дает тот же результат, что и команда "Создать SVF-файл" ТоталКоммандера ... а тут - вообще не поймешь, что! :-((
...
Рейтинг: 0 / 0
SOS - MD5 от Robert Hubley.
    #33922761
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну извиняйте, больше бананьев нема. Да и внутрь не заглядывал.
...
Рейтинг: 0 / 0
SOS - MD5 от Robert Hubley.
    #33923495
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пришлось разбираться с кодом от Robert Hubley ... ну и накручено же там, скажу я вам!

Переписал по-своему две процедуры:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
Private Sub MD5Update(InputLen As Long, InputBuffer() As Byte)
Dim lngBufferedBytes As Long
    lngBufferedBytes = ByteCounter Mod  64 
    
Dim i_in_InputBuffer As Long
For i_in_InputBuffer =  0  To InputLen -  1 
    ByteCounter = ByteCounter +  1 
    ByteBuffer(lngBufferedBytes) = InputBuffer(i_in_InputBuffer)
    lngBufferedBytes = lngBufferedBytes +  1 
    If (lngBufferedBytes =  64 ) Then
        lngBufferedBytes =  0 
        Call MD5Transform(ByteBuffer)
    End If
Next
End Sub

Private Sub MD5Final()
Dim lngBytesBuffered As Long
    lngBytesBuffered = ByteCounter Mod  64 
If (lngBytesBuffered <  56 ) Then
    Dim padding_len As Long
        padding_len =  64  - lngBytesBuffered
Else
        padding_len =  128  - lngBytesBuffered
End If

Dim adr_for_len As Byte
    adr_for_len = padding_len -  8 
    
Dim padding( 79 ) As Byte
    padding( 0 ) = &H80 '=128
Dim dblBits As Double
    dblBits = ByteCounter *  8 
padding(adr_for_len) = UnsignedToLong(dblBits) And &HFF&
padding(adr_for_len +  1 ) = UnsignedToLong(dblBits) \  256  And &HFF&
padding(adr_for_len +  2 ) = UnsignedToLong(dblBits) \  65536  And &HFF&
padding(adr_for_len +  3 ) = UnsignedToLong(dblBits) \  16777216  And &HFF&
'padding(adr_for_len + 4) = 0
'padding(adr_for_len + 5) = 0
'padding(adr_for_len + 6) = 0
'padding(adr_for_len + 7) = 0
    
Call MD5Update(padding_len, padding)
End Sub
- вроде, заработало ...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
SOS - MD5 от Robert Hubley.
    #34879198
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как оно на практике оказалось, работает?
...
Рейтинг: 0 / 0
SOS - MD5 от Robert Hubley.
    #34915503
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вроде - работает ... в смылсе - работало ... год-то назад!
...
Рейтинг: 0 / 0
SOS - MD5 от Robert Hubley.
    #34915580
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXSДа вроде - работает ... в смылсе - работало ... год-то назад!
А переписывал процедуры со знанием делаы или на обум поковырял?
...
Рейтинг: 0 / 0
SOS - MD5 от Robert Hubley.
    #34915806
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как сказать - "со знанием дела" ... помню, что разбирался, что там к чему.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / SOS - MD5 от Robert Hubley.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]