【发布时间】:2019-05-29 04:42:33
【问题描述】:
我尝试使用反射器研究 SHA-256 计算。但它进入了非托管代码的某个地方。
我想要找到的是是否可以优化 .NET System.Security.Cryptography 实现。以 SIMD 为例。
所以问题是 - .NET 4.6+ SHA-256 是否使用 SIMD。如果不能 - 是否可以通过使用 SIMD 来提高性能,或者当前的实现几乎是最好的?
编辑:我目前使用的 dll 在 Microsoft System.Security.Cryptography 中使用 CAPI 本机代码,它调用的代码是 unmanaged,我无法在 atm 中找到它的源代码..
托管实现https://referencesource.microsoft.com/#mscorlib/system/security/cryptography/sha256managed.cs 似乎没有使用 SIMD。
【问题讨论】:
-
没有。如果您使用的是 Net 4.6+,它已经经过优化,请参阅 instil.co/2016/03/21/parallelism-on-a-single-core-simd-with-c
-
@pteberf - 谢谢。我找不到那个..
-
@jdweng SIMD in .NET 只有在使用 System.Numerics 时才能使用。所以你评论中的“否” - 这是什么意思?否 - 我无法提高散列速度?但是似乎 .NET SHA256 不使用数字(根据@pteberf 的链接)..
-
我的意思是,根据文章,Net 4.6+ 已经利用了 SMID。请参阅后续文章:instil.co/2016/04/07/…
标签: c# .net cryptography simd sha256