Unix密码系统的c#实现

本文关键字:实现 密码系统 Unix | 更新日期: 2023-09-27 18:04:53

忽略DES提供的弱安全性,我正在寻找Unix crypt()函数的c#实现,该函数使用。net框架中的Cryptography命名空间中的类/方法。

我发现了这个:http://www.codeproject.com/Articles/9183/A-C-implementation-of-Unix-crypt

但我想知道是否有一个更短的解决方案使用DESCryptoServiceProvider

Unix密码系统的c#实现

您提到的Unix crypt的实现相当慢。

下面是用c#编写的一个独立的轻量级且非常有效的crypt(3)实现,它利用Span<T>类型来保存和转换数据

传统的和扩展的DES隐窝盐渍都改变了展开函数的结果。对于盐中设置的每一位i,它们交换展开函数结果的第i位和第i+24位。

因为这发生在中间轮,除非salt为零(意味着没有排列发生),否则不可能使用框架加密。

但是,重新实现DES不会占用超过一两个千字节。我的CryptSharp库实现了传统的和扩展的DES, MD5, SHA256, SHA512和bcrypt算法。对于MD5和SHA加密方法(方法$1$、$5$和$6$),它使用框架加密。如果您不限于使用DES加密方法,请查看ShaCrypter.cs——它相当短。