2017-02-15 4 views
0

Прежде всего хочу пояснить, что я не являюсь «PRO» на визуальном основании, ни C#. Но у меня был этот вопрос несколько дней в моей голове.Как я могу сделать проверку HWID перед загрузкой формы

«Возможно ли проверить HWID перед загрузкой формы? И как это работает?»

Поскольку я создаю программное обеспечение для местного тренажерного зала, я хотел бы реализовать некоторую безопасность, а не только базовую «форму входа». Итак, это подводит меня к этому вопросу ... Как я могу создать простой способ получить HWID из ЦП и проверить из простого текста (возможно, с помощью хеширования md5), если в этом списке такое же значение? Я искал объяснения, как это сделать и как реализовать его как на VB.NET, так и на C#.

Private Sub frmprincipal_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Dim janela As New frmLogin 
    janela.MdiParent = Me 
    janela.Show() 
    Label4.Text = "Faça login!" 
    tmrRelogio.Enabled = True 
    bttLogout.Enabled = False 
    bttLogout.Visible = False 
    Dim hwid As String = String.Empty 
    Dim mc As New ManagementClass("win32_processor") 
    Dim moc As ManagementObjectCollection = mc.GetInstances() 
    For Each mo As ManagementObject In moc 
     If hwid = "" Then 
      hwid = mo.Properties("processorID").Value.ToString() 
      Exit For 
     End If 
    Next 
    Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("https://www.dropbox.com/s/zewro4zubg9qc1s/HWID.txt") 
    Dim response As System.Net.HttpWebResponse = request.GetResponse() 
    Dim sr As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream()) 
    Dim hwidcheck As String = sr.ReadToEnd 
    If hwidcheck.Contains(hwid) Then 
     MsgBox("This is the original copy!", "INFORTGEI", MessageBoxButtons.OK) 
     If DialogResult.OK = True Then 
      Close() 
     End If 
    Else 
     MsgBox("Contact the admin to activate the copy!", MessageBoxButtons.OK, "INFORTGEI") 
    End If 
End Sub 

Все советы?

Заранее спасибо.

+2

Ваш вопрос очень широк. а) Что вы собираетесь делать с ID? Как эта «безопасность»? Как он заменит вход пользователя в систему? б) хеш MD5 не шифрует, его хэш, в) MD5 устарел. Также прочитайте [Ask] и возьмите [Tour] – Plutonix

+0

http://stackoverflow.com/questions/31746613/how-do-i-get-a-unique-identifier-for-a-device-within-windows- 10-универсальная проверка ответа кто-то объясняет, как получить HWID – Zerray

+0

Я прочитал все эти вопросы и не очень хорошо помог мне. Во-первых, поскольку эта программа предназначена для использования только на одном компьютере компании, это моя цель использовать HWID. Во-вторых, улучшает безопасность, потому что очень часто они передают отчеты через USB-накопители, и если кто-то получает копию, они могут легко отладить ее и украсть, и, наконец, она не заменит форму входа, потому что у меня все еще есть форма входа в систему, это просто сорт дополнительной проверки для моей цели. Вы можете проверить код, который я попытался объяснить, что я действительно хочу. –

ответ

0

Я нашел способ решить мою проблему. Вот код, который я сделал:

Dim hwid As String = String.Empty 
    Dim mc As New ManagementClass("win32_processor") 
    Dim moc As ManagementObjectCollection = mc.GetInstances() 
    For Each mo As ManagementObject In moc 
     If hwid = "" Then 
      hwid = mo.Properties("processorID").Value.ToString() 
      Exit For 
     End If 
    Next 
    Dim hash As List(Of String) = New List(Of String)(System.IO.File.ReadAllLines("..\HWID.txt")) 

    If Not hash.Contains(hwid) Then 
     MsgBox("Contact administrator to activate the hardware on the database.", MessageBoxButtons.OK, "INFORTGEI") 
     If DialogResult.OK = True Then 
      Close() 
     End If 
    Else 
     MsgBox("Activated sucessfully!", MessageBoxButtons.OK, "INFORTGEI") 
    End If 
Смежные вопросы