.net - sha256cryptoserviceprovider - sha512 vb net
Cómo crear hashes SHA-256 en WinRT? (1)
Fui a crear un hash SHA-256 unidireccional simple en WinRT hoy y me di cuenta de que no funcionaba. Hice una validación y aparentemente obtuve esto:
◦API System.Security.Cryptography.SHA256Generado en MSCORLIB, PUBLICKEYTOKEN = B77A5C561934E089 no es compatible para este tipo de aplicación. CryptoWinRT.exe llama a esta API. ◦API System.Security.Cryptography.HashAlgorithm en MSCORLIB, PUBLICKEYTOKEN = B77A5C561934E089 no es compatible con este tipo de aplicación. CryptoWinRT.exe llama a esta API. ◦API System.Security.Cryptography.SHA256Managed. # Ctor en MSCORLIB, PUBLICKEYTOKEN = B77A5C561934E089 no es compatible con este tipo de aplicación. CryptoWinRT.exe llama a esta API. ◦API System.Security.Cryptography.HashAlgorithm.ComputeHash (System.Byte []) en MSCORLIB, PUBLICKEYTOKEN = B77A5C561934E089 no es compatible con este tipo de aplicación. CryptoWinRT.exe llama a esta API.
¿Cuál es el reemplazo de esto? ¿Y por qué no se permitiría algo tan trivial en WinRT?
¿Esto funciona para tí?
private void HandleHashClick(object sender, RoutedEventArgs e)
{
// get the text...
var inputText = this.textInput.Text;
// put the string in a buffer, UTF-8 encoded...
IBuffer input = CryptographicBuffer.ConvertStringToBinary(inputText,
BinaryStringEncoding.Utf8);
// hash it...
var hasher = HashAlgorithmProvider.OpenAlgorithm("SHA256");
IBuffer hashed = hasher.HashData(input);
// format it...
this.textBase64.Text = CryptographicBuffer.EncodeToBase64String(hashed);
this.textHex.Text = CryptographicBuffer.EncodeToHexString(hashed);
}