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