2015-08-21 20 views
6

Chcę unikatowy identyfikator urządzenia do doręczeń back_end (WS) za to znalazłem następujące odniesienieJak uzyskać identyfikator unikalny urządzenia dla systemu Windows 8.1?

private string GetDeviceId() 
    { 
     var token = Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null); 
     var hardwareId = token.Id; 
     var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(hardwareId); 

     byte[] bytes = new byte[hardwareId.Length]; 
     dataReader.ReadBytes(bytes); 

     return BitConverter.ToString(bytes).Replace("-", ""); 
    }//Note: This function may throw an exception. 

ale nie mogę zrozumieć kod, za każdym razem mam ten sam identyfikator urządzenia (64 ciąg znaków) , Chcę wiedzieć, że ma on zastosowanie, czy nie? nie mogłem znaleźć żadnego odniesienia z MSDN również

Dziękuję

Odpowiedz

2

To może pomóc:

private string GetDeviceID() 
{ 
    HardwareToken token = HardwareIdentification.GetPackageSpecificToken(null); 
    IBuffer hardwareId = token.Id; 

    HashAlgorithmProvider hasher = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Md5); 
    IBuffer hashed = hasher.HashData(hardwareId); 

    string hashedString = CryptographicBuffer.EncodeToHexString(hashed); 
    return hashedString; 
} 

dokumentacji, spojrzeć na metody w klasie HardwareIdentificationGetPackageSpecificToken.

+0

Zamiast zakodowanego * "MD5" * można użyć 'HashAlgorithmNames.Md5' –

+0

@KristianVukusic Dziękuję. Zaktualizowałem swoją odpowiedź. –

+0

Ten PackageSpecificToken zmienia się po zmianie profilu sprzętu (odłącz BT lub coś innego). Nie polegałbym na tym. Może tylko w celach reklamowych. – Tertium