2015-05-19 8 views
0

Я использую RSACryptoServiceProvider для обеспечения безопасности.Как использовать отпечаток пальца для обеспечения безопасности?

Я построил код, используя самоподписанный сертификат для тестирования. Пользователь не предоставил нам фактический отпечаток. Я ожидал получить сертификат вместо этого? Как использовать Thumbprint?

вот код:

/// Builds Authorization in using self signed certificate 
/// </summary> 
/// <returns></returns> 
private string BuildAuthorization() 
{ 
    X509Certificate2 cert = GetCertificate(); 

    RSACryptoServiceProvider provideEncryptor = (RSACryptoServiceProvider)cert.PublicKey.Key; 

    string authorizaionValue = string.Format("{0}:{1}:{2}", _userName,_password, _currentTime); 

    byte[] encryptedData = provideEncryptor.Encrypt(Encoding.UTF8.GetBytes(authorizaionValue), false); 

    string encryptedString = Convert.ToBase64String(encryptedData); 

    return encryptedString; 

} 


/// <summary> 
/// creates a self signed certificate 
/// </summary> 
/// <returns></returns> 
private X509Certificate2 GetCertificate() 
{ 
    X509Store store = new X509Store(StoreLocation.CurrentUser); 
    store.Open(OpenFlags.ReadOnly); 
    X509Certificate2 cert = null; 
    string certName = ConfigurationManager.AppSettings["CertName"]; 

    foreach (var c in store.Certificates) 
    { 
     if (c.Subject.Equals(certName, StringComparison.OrdinalIgnoreCase)) 
     { 
      cert = c; 
      break; 
     } 
    } 


    store.Close(); 

    return cert; 

} 

отпечаток при условии, что-то вроде:

87aa7f6 ******************** 9b2d95093a6

+0

AnyOne имеет представление, что это значит? – grace

+1

Я нашел решение, пожалуйста, проверьте http://stackoverflow.com/questions/11115511/how-to-find-certificate-by-its-thumbprint-in-c-sharp – Nazmul

ответ

1

Отпечаток пальца - это всего лишь идентификатор сертификата, обычно это хеш MD5 или SHA1 сертификата.

Вы не можете ничего сделать с самим отпечатком пальца, подумайте об этом как о знаке записи в базе данных. Вам нужно обязательно, но я подозреваю, что намерение заключается в том, что они дают отпечаток сертификата, который находится в хранилище сертификатов. This StackOverflow question содержит информацию о том, как загрузить сертификат из хранилища сертификатов с помощью отпечатка пальца.

+0

спасибо! теперь это имеет больше смысла. – grace

+0

вот что, код для поиска на основе отпечатка пальца в порядке, если сертификат на локальном ур. Я публикую внешний URL? как я могу найти их сертификаты? это отбрасывает меня на 'X509Store certStore = новый X509Store (StoreName.My, StoreLocation.CurrentUser);' – grace

 Смежные вопросы

  • Нет связанных вопросов^_^