忽略 DES 提供的弱安全性,我正在寻找 Unix crypt() 函数的 C# 实现,该函数使用 .net 框架的 Cryptography 命名空间中的类/方法。
我发现了这个: http: //www.codeproject.com/Articles/9183/AC-implementation-of-Unix-crypt
但我想知道是否有使用DESCryptoServiceProvider
等更短的解决方案。
忽略 DES 提供的弱安全性,我正在寻找 Unix crypt() 函数的 C# 实现,该函数使用 .net 框架的 Cryptography 命名空间中的类/方法。
我发现了这个: http: //www.codeproject.com/Articles/9183/AC-implementation-of-Unix-crypt
但我想知道是否有使用DESCryptoServiceProvider
等更短的解决方案。
传统的和扩展的 DES crypt salting 都置换了扩展函数的结果。对于我在 salt 中设置的每个位,它们交换扩展函数结果的位 i 和 i+24。
因为这发生在轮中,除非盐值为零(意味着没有发生排列),所以不可能使用框架加密。
尽管如此,重新实现 DES 所花费的时间不会超过一两个千字节。我的CryptSharp库实现了传统和扩展的 DES、MD5、SHA256、SHA512 和 bcrypt 算法。对于 MD5 和两种SHA 加密方法(方法 $1$、$5$ 和 $6$),它使用框架加密。如果您不必使用 DES crypt 方法,请查看 ShaCrypter.cs——它相当短。