Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > MD5 пример


Автор: Doc_d0s 15.10.2006, 19:37
Дайте кусок кода на C++.Net как вычислить мд5 хэш.
зы по форуму искал нашел на шарпе но перевести для меня проблематично, да и МСДН не изобилует примерами(

Автор: Djuffin 15.10.2006, 20:55
Код

array<Byte>^ data = gcnew array<Byte>(DATA_SIZE);

MD5^ md5 = gcnew MD5CryptoServiceProvider;

array<Byte>^ result = md5->ComputeHash( data );



Не надо на MSDN наговаривать. Вот. Нашел пример за 30 секунд.


OFFLINE:
ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref11/html/T_System_Security_Cryptography_MD5.htm

ONLINE:
http://msdn2.microsoft.com/en-us/library/system.security.cryptography.md5cryptoserviceprovider.aspx

Автор: marcusmae 15.10.2006, 21:00
Цитата

Не надо на MSDN наговаривать. Вот. Нашел пример за 30 секунд.


иногда полезно и самому написать, чтобы сохранять тонус smile

пример функции, вычисляющей контрольную сумму для файла
(для сравнения, код на шарпе и на плюсах) :

Код

using System;
using System.IO;
using System.Security.Cryptography;

...

        String ComputeMD5(String filename)
        {
            MD5CryptoServiceProvider csp = new MD5CryptoServiceProvider();

            // Compute hash
            FileStream stmcheck = File.OpenRead(filename);
            byte[] hash = csp.ComputeHash(stmcheck);
            stmcheck.Close();

            // Convert to string
            return BitConverter.ToString(hash).Replace("-", "").ToLower();
        }


Код

using namespace System;
using namespace System::IO;
using namespace System::Security::Cryptography;

...

        String^ ComputeMD5(String^ filename)
        {
            MD5CryptoServiceProvider^ csp = gcnew MD5CryptoServiceProvider;

            // Compute hash
            FileStream^ stmcheck = File::OpenRead(filename);
            array<Byte>^ hash = csp->ComputeHash(stmcheck);
            stmcheck->Close();

            // Convert to string
            return BitConverter::ToString(hash)->Replace("-", "")->ToLower();
        }

Автор: Doc_d0s 17.10.2006, 20:58
хорошо, а теперь чтобы это все работало со String ^

Автор: Djuffin 17.10.2006, 22:49
Цитата(Doc_d0s @  17.10.2006,  20:58 Найти цитируемый пост)
хорошо, а теперь чтобы это все работало со String ^

Код

Encoding^ enc = Encoding::UTF8; //нужная  кодировка
array<Byte>^data = enc->GetBytes( yourString );
MD5^ md5 = gcnew MD5CryptoServiceProvider;
array<Byte>^ result = md5->ComputeHash( data );


Мог бы и догадаться smile


Автор: Exception 17.10.2006, 23:18
[offtop]
Вот приплюснутые smile 
[/offtop]

Автор: Doc_d0s 10.12.2006, 09:59
Вопрос решен)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)