Я пытаюсь в Rijndael сгенерировать зашифрованную строку лицензии для использования в нашем новом программном обеспечении, поэтому мы знаем, что наши клиенты используют такое же количество приложений, за которое они заплатили. Я делаю две вещи:
Получение имени компьютера пользователя.
Добавление случайного числа от 100 до 1000000000
Затем я объединяю их и использую в качестве номера лицензии (вероятно, это изменится в окончательной версии, но я просто делаю что-то простое для демонстрационных целей).
Вот пример кода:
Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim generator As New Random
Dim randomValue As Integer
randomValue = generator.Next(100, 1000000000)
' Create a new Rijndael object to generate a key
' and initialization vector (IV).
Dim RijndaelAlg As Rijndael = Rijndael.Create
' Create a string to encrypt.
Dim sData As String = My.Computer.Name.ToString + randomValue.ToString
Dim FileName As String = "C:\key.txt"
' Encrypt text to a file using the file name, key, and IV.
EncryptTextToFile(sData, FileName, RijndaelAlg.Key, RijndaelAlg.IV)
' Decrypt the text from a file using the file name, key, and IV.
Dim Final As String = DecryptTextFromFile(FileName, RijndaelAlg.Key, RijndaelAlg.IV)
txtDecrypted.Text = Final
End Sub
Это мое событие загрузки, но здесь происходит волшебство:
Sub EncryptTextToFile(ByVal Data As String, ByVal FileName As String, ByVal Key() As Byte, ByVal IV() As Byte)
Dim fStream As FileStream = File.Open(FileName, FileMode.OpenOrCreate)
Dim RijndaelAlg As Rijndael = Rijndael.Create
Dim cStream As New CryptoStream(fStream, _
RijndaelAlg.CreateEncryptor(Key, IV), _
CryptoStreamMode.Write)
Dim sWriter As New StreamWriter(cStream)
sWriter.WriteLine(Data)
sWriter.Close()
cStream.Close()
fStream.Close()
End Sub
Есть пара вещей, которые я не понимаю. Что если кто-то прочитает текстовый файл и узнает, что это Rijndael, и напишет приложение VB или C #, которое расшифровывает его? Я не совсем понимаю весь этот код, поэтому, если вы, ребята, сможете мне помочь, я буду любить вас всех навсегда.
Заранее спасибо