Tôi đang di chuyển/chuyển đổi/xây dựng lại ứng dụng Windows Phone 7.1 thành Windows 8 Store App.Làm việc với hmacsha256 trong cửa sổ ứng dụng cửa hàng
Một phương pháp Tôi đang sử dụng trong ứng dụng WP7 de ban cho tôi rắc rối:
private byte[] GetSHA256Key(string data, string secretKey)
{
byte[] value = Encoding.UTF8.GetBytes(data);
byte[] secretKeyBytes = Encoding.UTF8.GetBytes(secretKey);
HMACSHA256 hmacsha256 = new HMACSHA256(secretKeyBytes);
byte[] resultBytes = hmacsha256.ComputeHash(value);
return resultBytes;
}
Nhìn vào tài liệu cho Windows Store Apps tôi đã đưa ra mã mới này mà tôi hy vọng sẽ cung cấp cho cùng một kết quả. Nhưng không. Tôi đang làm gì đó sai. Nhưng cái gì?
private byte[] GetSHA256Key(string value, string secretKey)
{
// Create a MacAlgorithmProvider object for the specified algorithm.
MacAlgorithmProvider objMacProv = MacAlgorithmProvider.OpenAlgorithm(MacAlgorithmNames.HmacSha256);
// Create a buffer that contains the message to be signed.
IBuffer valueBuffer = CryptographicBuffer.ConvertStringToBinary(value, BinaryStringEncoding.Utf8);
// Create a key to be signed with the message.
IBuffer buffKeyMaterial = CryptographicBuffer.ConvertStringToBinary(secretKey, BinaryStringEncoding.Utf8);
CryptographicKey cryptographicKey = objMacProv.CreateKey(buffKeyMaterial);
// Sign the key and message together.
IBuffer bufferProtected = CryptographicEngine.Sign(cryptographicKey, valueBuffer);
DataReader dataReader = DataReader.FromBuffer(bufferProtected);
byte[] bytes = new byte[bufferProtected.Length];
dataReader.ReadBytes(bytes);
return bytes;
}
Tôi không phải là chuyên gia về Mật mã. Tôi không chắc mình đang làm gì. Có lẽ có ai đó ngoài kia có thể giúp tôi.
Thanx, JP
"Một phương pháp tôi đang sử dụng trong ứng dụng de WP7 là khiến tôi gặp sự cố" tại sao? Phương pháp/lớp học bị thiếu? Ngoại lệ? Chi tiết sẽ giúp bạn. – Will