Bonjour,

Je souhaite crypter une chaine de caractère pour faire une activation de mon programme. Je récupère le numéro de série du disque dur, je l'affiche et en retour j'attends que l'utilisateur saisisse la clé d'activation (cryptage du numéro de série du DD).
J'utilise la méthode SHA512 pour crypter la chaine :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
Public Shared Function GetSHA512(ByVal str As String, ByVal Nombre As Int32) As String
Dim strHex As String = ""
Dim temp As String = ""
Dim UE As UnicodeEncoding = New UnicodeEncoding
Dim HashValue As Byte()
Dim MessageBytes As Byte() = UE.GetBytes(str)
Dim SHhash As SHA512Managed = New SHA512Managed
GetSHA512 = ""
 
'create the hash table using the SHA512 algorithm
HashValue = SHhash.ComputeHash(MessageBytes)
convert the hash table to a string
If Nombre > HashValue.Length Then
    Nombre = HashValue.Length
End If
For i As Integer = 0 To Nombre - 1
    strHex += String.Format("{0:x2}", HashValue(i))
Next
GetSHA512 = strHex.PadRight(Nombre, CChar("@")).Substring(0, Nombre)
UE = Nothing
SHhash.Clear()
End Function
Le problème est que cette méthode semble renvoyer un code différent suivant la session windows auquelle on est loggé.

Quelqu'un connait-il une méthode simple de cryptage qui ne change pas suivant la session windows ? Ou alors y a-t-il une option pour le cryptage avec SHA512 pour qu'il ne change pas suivant la session windows ?

Merci.