2015-08-31 2 views
0

Мне нужно создать строку, которая является альфа-и/или числовой, которая основана на месяце месяца и году, который был создан. Строка должна быть не менее 1024. В принципе, как токен, который может использоваться между двумя машинами только на дату его создания. Код, который у меня есть до сих пор, таков:Создайте строку длиной 1024 цифры на основе MM/DD/YYYY

Dim temp As String = DateTime.Now.Day^DateTime.Now.Month^DateTime.Now.Year 
    MsgBox(temp) 

Но он просто перегружает и не приносит мне много пользы. То, что я пытаюсь сделать, - компьютер «A» шифрует файл, используя маркер на основе даты его создания. Затем компьютер «B» расшифровывает его, используя тот же токен. Это необязательно должно быть по дате, но обе машины должны знать, что такое токен.

+0

Пожалуйста, добавьте код, который вы получили до сих пор на свой вопрос. Существуют ли дополнительные требования, которые должен выполнять токен? – albert

+0

Я думал об использовании чего-то вроде этого: Dim temp As String = DateTime.Now.Day^DateTime.Now.Month^DateTime.Now.Year MsgBox (temp), но он просто перегружает – Brian

+0

. Добавьте к вашему вопросу, отредактировав его, Пожалуйста. – albert

ответ

0

Это создаст 1024 длинную строку под названием «маркер» ... Вы также можете изменить, как долго эта строка будет действовать путем изменения второго в минуту или час или день или месяц или год в этой линии code "token + = getMD5Hash (Now.Second + i)"

Public Shared Function getMD5Hash(ByVal strToHash As String) As String 
    Dim md5Obj As New System.Security.Cryptography.MD5CryptoServiceProvider() 
    Dim bytesToHash() As Byte = System.Text.Encoding.ASCII.GetBytes(strToHash) 
    bytesToHash = md5Obj.ComputeHash(bytesToHash) 
    Dim strResult As String = "" 
    Dim b As Byte 
    For Each b In bytesToHash 
     strResult += b.ToString("x2") 
    Next 
    Return strResult 
End Function 



Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim token As String 
    For i = 0 To 31 
     token += getMD5Hash(Now.Second + i) 
    Next 
End Sub 
+0

Это прекрасно, спасибо! – Brian

0

После нескольких исследований я считаю, что это будет работать для того, что мне нужно, если у кого-то еще не будет лучшей идеи.

 Dim result As Byte() 
     Dim sha As New SHA512CryptoServiceProvider 
     Dim key As String = Nothing 
     result = sha.ComputeHash(System.Text.Encoding.ASCII.GetBytes(_ 
           Date.Today.ToString("MMddyyyy"))) 
     key = System.Convert.ToBase64String(result)