2012-06-25 24 views
7

tôi copy-dán từ MSDN mã này:SHA1 (và cả không gian tên Cryptography) mất tích trong 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; 

nhưng VS nói không có Cryptography namespace như vậy, do đó không có lớp SHA1CryptoServiceProvider.

Tôi đang làm gì sai?

Tôi đang sử dụng Visual Studio Professional 2012 RC với giấy phép Dreamspark trên Windows 8 Release Preview.

+0

bạn có thể cung cấp liên kết của mã đó không? – aliboy38

+0

nó ở đó. Xem MSDn http://msdn.microsoft.com/en-us/library/system.security.cryptography(v=vs.110).aspx –

+0

có thể đã không giải thích cho bản thân mình, ý tôi là VS nói rằng anh ấy không thể tìm thấy lớp đó cũng không phải không gian tên –

Trả lời

5

Tôi lấy nó mà bạn đang cố tạo ứng dụng Metro? Các ứng dụng kiểu tàu điện ngầm không hỗ trợ không gian tên System.Security.Cryptography. Danh sách đầy đủ các vùng tên .NET API được hỗ trợ cho các ứng dụng Metro có thể được tìm thấy here.

CẬP NHẬT 29 tháng 6

Như Guillermo đã chỉ ra, mặc dù có không gian tên Windows.Security.Cryptograhy.Core, có chứa một lớp HashAlgorithmProvider nơi ví dụ thuật toán SHA1 có thể được áp dụng.

+2

Làm cách nào có thể? Nó có nghĩa là nếu tôi muốn một ứng dụng Metro tôi không thể sử dụng SHA-1 nữa? – sharptooth

5

Câu trả lời là, như Anders Gustafsson chỉ ra rằng trong Metro System.Security.Cryptography không được hỗ trợ. NHƯNG bạn có Windows.Security.Cryptography thay thế.

+0

Có, tôi đã nhìn thấy nó nhưng không nhìn gần đủ lần đầu tiên. Cảm ơn đã chỉ ra điều đó. Tôi cập nhật câu trả lời của tôi với một số liên kết đến tài liệu MSDN để hoàn thành. –

Các vấn đề liên quan