Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 | 5 |

 

  Вопрос: Нужно реализацию md5 на MS VC++ 2003 Добавлено: 13.04.07 00:37  

Автор вопроса:  ZagZag | ICQ: 295002202 

Ответить

  Ответы Всего ответов: 70  

Номер ответа: 46
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #46
Добавлено: 15.04.07 06:30
Ну у тебя наверно и машина помощнее? Сколько PasswordsPro дает?

Ответить

Номер ответа: 47
Автор ответа:
 W[4Fh]LF



Вопросов: 0
Ответов: 187
 Web-сайт: hunger.ru
 Профиль | | #47
Добавлено: 15.04.07 07:48
PasswordsPro 2.51 млн. - по праву считается лучшей


1. У неё очень хороший алгоритм инкремента паролей, вроде около 200-300 тактов на один(можешь глянуть здесь: http://www.insidepro.com/doc/003r.shtml)
2. У неё есть предрасчитанные таблицы и они здорово работают.
3. Для малого кол=-ва хешей там используется алгоритм с обращённым 4м раундом, что позволяет не генерировать хеш целиком.

Далее...

Выкинь из моего исходника вот это:


     mov ecx,16
mov edi,outBuffer
@@:
lodsb
xor ah,ah
ror ax,4
shr ah,4
movsx edx,ah
     mov ah,byte ptr [hexnum + edx]
     movsx edx,al
     mov al,byte ptr [hexnum + edx]
mov word ptr[edi],ax
add edi,2
dec ecx
jne @b


Зачем при бруте каждый раз преобразовывать хеш в строку(PPro точно так не делает)? Замени lea esi,TempStr на mov esi,outBuffer и на выходе будешь иметь в outBuffer 16 байт с хешем.

Учитывая всё это можно говорить, что данный алгоритм не уступает PPro.

Ответить

Номер ответа: 48
Автор ответа:
 W[4Fh]LF



Вопросов: 0
Ответов: 187
 Web-сайт: hunger.ru
 Профиль | | #48
Добавлено: 15.04.07 10:21
Ещё кстати можно развернуть цикл, если всё-таки на выходе строка нужна, прирост будет, но сомневаюсь, что ощутимый.

Ответить

Номер ответа: 49
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #49
Добавлено: 15.04.07 19:13
Конечно, я сразу выкинул, везде смотрел именно на бинарный хэш.

Ответить

Номер ответа: 50
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #50 Добавлено: 15.04.07 19:54
Сорри, Sharp в своем бенчмарке накапливал результат в строку, я же только тестировал само время хеширования. Попробовал накапливать результат в строку - жуть, вб настолько медленно работает со строками, что я так и недождался конца :) Сегодня гляну сколько PasswordsPro выдает, а то я щас не дома. Ну а так машина у меня Athlon3200 x64, 1 ГБ RAM.

Ответить

Номер ответа: 51
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #51
Добавлено: 16.04.07 00:53
Хм. А куда делись дотнетчики? :)

Ответить

Номер ответа: 52
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #52 Добавлено: 16.04.07 02:20
Athlon 2000, 1.5 GB RAM.

Шифрование 10 ГиБ данных из памяти (шифровался один и тот же блок размером 4096 байт, непрерывно подаваемый в функцию через поток)
00:01:19.6562500

Примерно 130 МиБ/с

Module Module1
    Sub Main()
        Dim Start As DateTime = DateTime.Now
        TestMD5()
        Console.WriteLine(Now.Subtract(Start))
        Console.ReadLine()


        Console.WriteLine()

        TestInterInfo()
    End Sub

    Sub TestMD5()
        Dim MD5 As New System.Security.Cryptography.MD5CryptoServiceProvider
        Using Strm As New S(10L * 1024 * 1024 * 1024, 4096)
            Console.WriteLine(Convert.ToBase64String(MD5.ComputeHash(Strm)))
        End Using
    End Sub
End Module

Public Class S
    Inherits System.IO.Stream

    Dim Buf As Byte()
    Dim StreamLength As Long

    Public Sub New(ByVal length As Long, ByVal bufLength As Integer)
        Buf = New Byte(bufLength - 1) {}
        Dim Rnd As New Random
        Rnd.NextBytes(Buf)
        StreamLength = length
    End Sub

    Public Overrides Function Read(ByVal buffer() As Byte, ByVal offset As Integer, ByVal count As Integer) As Integer
        Array.Copy(Buf, buffer, count)
        StreamLength -= count
        Return CInt(Math.Max(Math.Min(CLng(count), StreamLength), 0))
    End Function

    Public Overrides ReadOnly Property CanRead() As Boolean
        Get
        End Get
    End Property
    Public Overrides ReadOnly Property CanSeek() As Boolean
        Get
        End Get
    End Property
    Public Overrides ReadOnly Property CanWrite() As Boolean
        Get
        End Get
    End Property
    Public Overrides Sub Flush()
    End Sub
    Public Overrides ReadOnly Property Length() As Long
        Get
        End Get
    End Property
    Public Overrides Property Position() As Long
        Get
        End Get
        Set(ByVal value As Long)
        End Set
    End Property
    Public Overrides Function Seek(ByVal offset As Long, ByVal origin As System.IO.SeekOrigin) As Long
    End Function
    Public Overrides Sub SetLength(ByVal value As Long)
    End Sub
    Public Overrides Sub Write(ByVal buffer() As Byte, ByVal offset As Integer, ByVal count As Integer)
    End Sub
End Class

Ответить

Номер ответа: 53
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #53 Добавлено: 16.04.07 02:58
а ну хм вб6 несильно отстал :)

Ответить

Номер ответа: 54
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #54
Добавлено: 16.04.07 03:48
Не надо нам синтетических тестов, не имеющих отношения к реальной жизни. На что способен дотнет по сравнению с PasswordsPro, реализацией от BUGOR'а, стандартной (а значит неоптимизированной) и даже PHP-реализацией в реальной задаче - брутфорсе хэшей, наглядно продемонстрировал мой бенчмарк.

Ответить

Номер ответа: 55
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #55 Добавлено: 16.04.07 05:46
Ну в принципе для перебора паролей .NET не совсем удачный выбор.

Если, к примеру, контрольную сумму файла считать - больше времени уйдет на операции с диском.

Ответить

Номер ответа: 56
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #56 Добавлено: 16.04.07 12:27
Ну в принципе для перебора паролей .NET не совсем удачный выбор.
Странно, я думал как обычно: А мне ненадо перебирать мд5 хеши :)))

Если, к примеру, контрольную сумму файла считать - больше времени уйдет на операции с диском.
Хочешь потягаться с ассемблеромна своём дотнете, по поводу считывания данных с диска, и расчитыванием контрольной сумы? :)

Ответить

Номер ответа: 57
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #57 Добавлено: 16.04.07 16:27
Странно, я думал как обычно: А мне ненадо перебирать мд5 хеши :)))

ЭЭээ... ну я таким вообще не интерисуюсь...
Мне приятнее на своем кресле со своим компоа, а не на нахарх с ноутом :)

Хочешь потягаться с ассемблеромна своём дотнете, по поводу считывания данных с диска, и расчитыванием контрольной сумы? :)

А че тут тягаться, если все скушают операции с диском?

Ответить

Номер ответа: 58
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #58 Добавлено: 16.04.07 18:55
ну в ассемблере больше места для креатиффа для чего не возьми, опирации с диском в том числе... Поэтому реальные пацаны загонять дотнет и в чтении с диска...:)

Ответить

Номер ответа: 59
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #59 Добавлено: 16.04.07 19:26
ну в ассемблере больше места для креатиффа для чего не возьми, опирации с диском в том числе... Поэтому реальные пацаны загонять дотнет и в чтении с диска...:)

Да верю я - недокументированые команды для раскрутки шпинделя, увеличения пропускной способности IDE-канала... Куда нам дотнетчикам?

Ответить

Номер ответа: 60
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #60 Добавлено: 16.04.07 20:20
... работа с фат/нтфс таблицами без участия ОС, самому ручками, работа с памятью при вычитывании данных :)

Видишь, я и то более реально нафантазировал, чем недокументированые команды для раскрутки шпинделя, увеличения пропускной способности IDE-канала...))

Ответить

Страница: 1 | 2 | 3 | 4 | 5 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам