2012-06-25 13 views
7

copio-pegar desde MSDN este código:SHA1 (y todo espacio de nombres criptografía) que faltan en Visual Studio 2012

using System.Security.Cryptography; 

byte[] buffer = enc.GetBytes(text); 
SHA1CryptoServiceProvider cryptoTransformSHA1 = 
      new SHA1CryptoServiceProvider(); 
string hash = BitConverter.ToString(
      cryptoTransformSHA1.ComputeHash(buffer)).Replace("-", ""); 

return hash; 

pero VS dice que no hay tal Cryptography espacio de nombres, por lo tanto no hay una clase SHA1CryptoServiceProvider.

¿Qué estoy haciendo mal?

Estoy usando Visual Studio Professional 2012 RC con licencia Dreamspark en Windows 8 Release Preview.

+0

¿Puedes dar el enlace de ese código? – aliboy38

+0

está ahí. Ver MSDn http://msdn.microsoft.com/en-us/library/system.security.cryptography(v=vs.110).aspx –

+0

puede que no me haya explicado, quise decir VS dice que no puede encontrar esa clase ni namespace –

Respuesta

5

¿Puedo entender que usted está tratando de crear una aplicación de Metro? Las aplicaciones estilo Metro no son compatibles con el espacio de nombres System.Security.Cryptography. La lista completa de espacios de nombres de API .NET admitidos para aplicaciones de Metro se puede encontrar en here.

actualización de junio de 29

Como Guillermo ha señalado, sin embargo, existe la Windows.Security.Cryptograhy.Core espacio de nombres, que contiene una clase HashAlgorithmProvider donde por ejemplo, el algoritmo SHA1 se puede aplicar.

+2

¿Cómo es eso posible? ¿Significa que si quiero una aplicación Metro ya no puedo usar SHA-1? – sharptooth

5

La respuesta es, como señaló Anders Gustafsson, que en el Metro System.Security.Cryptography no es compatible. PERO usted tiene Windows.Security.Cryptography en su lugar.

+0

Sí, lo vi pero no lo miré lo suficiente la primera vez. Gracias por mencionarlo. Actualicé mi respuesta con algunos enlaces a la documentación de MSDN para que esté completa. –

Cuestiones relacionadas