Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
public string GetMD5Hash(string input)
		{
			System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();
			byte[] bs = File.ReadAllBytes(input);
			bs = x.ComputeHash(bs);
			System.Text.StringBuilder s = new System.Text.StringBuilder();
			foreach(byte b in bs)
			{
				s.Append(b.ToString("x2").ToLower());
			}
			string password = s.ToString();
			return password;
		}
public string getSHA1(string input)
		{
			return BitConverter.ToString(System.Security.Cryptography.SHA1Managed.Create().ComputeHash(Encoding.Default.GetBytes(input))).Replace("-", "");
		}
public string getSHA256(string input)
		{
			string hash = null;
			var sha256 = System.Security.Cryptography.SHA256.Create();

			Byte[] hashBytes = sha256.ComputeHash(Encoding.Default.GetBytes(input));
			hash = BitConverter.ToString(hashBytes);
			return hash.Replace("-", "");
		}
В качестве INPUT - полный путь к файлу.

отправка запроса на VirusTotal:


Код: Выделить весь код
//созд. объект, который отравляет GET и POST запросы
Stream stRequest;

System.Net.WebRequest objRequest = System.Net.WebRequest.Create("http://www.virustotal.com/vt/en/consultamd5");
objRequest.Method = "POST";
objRequest.ContentType = "application/x-www-form-urlencoded";
objRequest.Timeout = 120000;
objRequest.Proxy.Credentials = CredentialCache.DefaultCredentials;

StringBuilder sendString = new StringBuilder();
sendString.AppendFormat("hash={0}", "ТУТ ПОЛУЧЕННЫЙ MD5");


//узнаём длину строки, нужную для POST запросов
byte[] SomeBytes = Encoding.UTF8.GetBytes(sendString.ToString());
objRequest.ContentLength = SomeBytes.Length;
stRequest = objRequest.GetRequestStream();//открывает поток
stRequest.Write(SomeBytes, 0, SomeBytes.Length);//пишет в него
stRequest.Close();
//тут же ждем ответа от cgi. если ответ не нужен, то не ждите :)
System.Net.HttpWebResponse response = (System.Net.HttpWebResponse) objRequest.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string res = reader.ReadToEnd();
//Читаем файл
using(StreamWriter sw = new StreamWriter(PathToDocs + "\\" + row.Cells[0].Value.ToString() + "-" + row.Cells[2].Value.ToString() + ".html"))
{
	sw.Write(res);
}
reader.Close();
response.Close();
sendString.AppendFormat("hash={0}", "ТУТ ПОЛУЧЕННЫЙ MD5");
hash={0} - слово HASH берется из требуемой страницы на сервере. Я просматривал код страницы http://www.virustotal.com/vt/en/consultamd5, там есть TextBox с ID="hash". Вот его и указываем при отправке POST запроса.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 05:52, 18-08-2010 | #5