我在.net core 3.1中找不到任何 RIPEMD160 的实现。
MS关于RIPEMD160的文档 并不存在于 net Standard, Core 3.1,Core 5.0 中.
在 System.Security.Cryptography 中,我找不到任何相关内容。
在寻找第三方包 (例如Chilkat) 之前,我想尝试使用框架库。
我在.net core 3.1中找不到任何 RIPEMD160 的实现。
MS关于RIPEMD160的文档 并不存在于 net Standard, Core 3.1,Core 5.0 中.
在 System.Security.Cryptography 中,我找不到任何相关内容。
在寻找第三方包 (例如Chilkat) 之前,我想尝试使用框架库。
并且从msdn中得知:RIPEMD160不是由操作系统加密层提供的算法,而.NET Core不再携带托管实现的加密算法。
我找不到是否有关于此事的讨论,或者某些经理决定以这种方式进行最佳处理。所有哈希算法和基于哈希的消息认证(HMAC)类,包括*Managed类,都会延迟到操作系统库。虽然各种操作系统库在性能上有所不同,但它们应该是兼容的。
除非文件头中另有说明,否则该存储库中的文件均根据MIT许可证许可。如果文件头仅包含版权标头(例如“版权所有(c)Microsoft Corporation。保留所有权利。”),您可以假定相关文件已获得MIT许可。
我开始从System.Security.Cryptography复制一些类,但由于有许多属性和对其他类/接口的依赖,我不喜欢那个解决方案。
因为Chilkat似乎有点老(netstandard 1.3),而且在项目中我已经在使用BouncyCastle,所以最终我只是写了这个:
type RIPEMD160 () =
static member ComputeHash (bytes: byte array) =
let hasher = Org.BouncyCastle.Crypto.Digests.RipeMD160Digest()
hasher.BlockUpdate(bytes, 0, bytes.Length)
let hash:byte array = Array.zeroCreate (hasher.GetDigestSize())
hasher.DoFinal(hash, 0) |> ignore
hash