可移植库.Net中的Sha256哈希

可移植库.Net中的Sha256哈希,.net,windows-phone-8,windows-8,portable-class-library,.net,Windows Phone 8,Windows 8,Portable Class Library,我需要计算可移植库中字节数组的散列 我正试图为我的便携式库找到System.Security.Cryptography.SHA256Managed的等价物,目标是.NET 4.5+win 8+WP 8.0 我尝试了PclContrib,但似乎无法为针对这些平台的库安装它 有没有提供哈希算法实现的库可以在可移植库的上下文中引用 谢谢也许您正在寻找HashAlgorithmProvider 这对你有用吗 private void HandleHashClick(object sender, R

我需要计算可移植库中字节数组的散列

我正试图为我的便携式库找到System.Security.Cryptography.SHA256Managed的等价物,目标是.NET 4.5+win 8+WP 8.0

我尝试了PclContrib,但似乎无法为针对这些平台的库安装它

有没有提供哈希算法实现的库可以在可移植库的上下文中引用


谢谢

也许您正在寻找
HashAlgorithmProvider

这对你有用吗

   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);
    }
有关更多参考信息,请转到

您可以使用此端口。AArnott准备了一份尚未被接受但可能对您有所帮助的报告。 您还可以将一些直接集成到您的应用程序中

有弹性的城堡样品:

        var data = System.Text.Encoding.UTF8.GetBytes("test");
        Org.BouncyCastle.Crypto.Digests.Sha256Digest hash = new Org.BouncyCastle.Crypto.Digests.Sha256Digest();
        hash.BlockUpdate(data, 0,data.Length);
        byte[] result = new byte[hash.GetDigestSize()];
        hash.DoFinal(result, 0);
更新: 我不维护我的原始端口,我强烈建议使用GitHub上可用的端口,例如:。它还支持更多的平台

更新2: 从今天起,我宁愿推荐使用。这个库由AArnott维护(他最初帮助我获得Bouncy castle PCL支持)。这个库的主要优点是,感谢nuget bait和switch,它将使用本机加密API,而不是管理缓慢且可能不安全的实现。支持的算法的完整列表可用

更新3:
Net标准的类库现在应该是大多数用例的答案。在Xamarin开发方面,PCLCrypto似乎仍然是最好的。

您可以使用BouncyCastle,它似乎有PCL版本(不确定是否有正式的PCL版本)。或者,如果是BC,您可以简单地将SHA-256撕掉并直接使用它。感谢CodesInChaos,您能告诉我在这个库中哪里可以找到Sha256类来计算哈希值吗?这不只是WinRT/metro吗?不,它可以同时适用于windows和windows phone。请参见给定链接中的要求谢谢您的快速回答,但遗憾的是,这是针对windows phone 8.1的,我需要支持wp 8.0。我花了最后一个小时试图在我的项目中导入mono cryptography部分,但依赖项太多了。我在Bouncy Castel库中找不到任何有用的类。我编辑了我的评论以添加Bouncy castle示例。是的。。。它在工作!!!谢谢对不起,我不知道如何使用这个类。。。我不知道BlockUpdate用于加载字节数组。不客气,这个库并不简单:)