system.security.cryptography.sha1是否使用OpenSSL库的SHA1算法实现?

时间:2010-09-29 16:38:08

标签: c# openssl sha1

或者是微软定制的算法?我测试了在mac上使用OpenSSL计算的SHA1等效于使用system.security.cryptography.sha1在C#中计算的哈希。

2 个答案:

答案 0 :(得分:4)

System.Security.Cryptography.SHA1是一个抽象类。它有三个实现:

所以,不,.NET Framework附带的任何实现都没有在内部使用OpenSSL。

Mono附带了这些类的不同实现。它们全都使用{C}编写的the same implementation

你得到相同结果的原因是SHA​​1算法是确定性的,即它总是为同一输入产生完全相同的结果。

答案 1 :(得分:2)

微软几乎肯定有自己的实现。

SHA-1是一个(确定性的)散列函数,因此如果将其应用于相同的输入数据,则应该使用两个不同的实现获得相同的结果。如果不这样做,这并不仅仅意味着两个实现是不同的,它还意味着其中一个是错误的。