繁体   English   中英

在没有System.Security.Cryptography的情况下计算SHA256哈希

[英]Calculate SHA256 hash WITHOUT System.Security.Cryptography

我正在将我的库之一移至Xamarin PLC。

官方文档指出支持System.Security.Cryptography命名空间,但实际代码中没有。

我正在寻找一种在没有此命名空间的情况下(并且在Windows命名空间中也没有HashAlgorithmProvider的情况下)计算SHA256哈希的方法。此方法破坏了适用于Android和WP8.0的应用程序

使用Bouncy Castle PCL库( https://www.nuget.org/packages/Portable.BouncyCastle/ )测试类似的内容

var encData = Encoding.UTF8.GetBytes("TESTHASH");
Org.BouncyCastle.Crypto.Digests.Sha256Digest myHash = new Org.BouncyCastle.Crypto.Digests.Sha256Digest();
myHash.BlockUpdate (encData, 0, encData.Length);
byte[] compArr = new byte[myHash.GetDigestSize ()];
myHash.DoFinal (compArr, 0);

Xamarin文档完全支持名称空间。

您不能使用它,仅是因为您正在编写PCL库,而Microsoft(好吧,您发现它很奇怪)认为它不应该如此。

您可以在其他答案中使用替代方法,因为对Bouncy Castle进行了完全管理且没有任何硬件提升,因此其性能显着下降,或者完全放弃了PCL方法。

Microsoft提供了.NET Core和.NET平台标准/.NET标准库,该库使您的库可以针对.NET平台标准,然后大多数PCL问题都会消失。 密切关注它,您会喜欢的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM