4

DES によって提供される脆弱なセキュリティを見落として、.net フレームワークの暗号化名前空間でクラス/メソッドを使用する Unix crypt() 関数の C# 実装を探しています。

私はこれを見つけました: http://www.codeproject.com/Articles/9183/AC-implementation-of-Unix-crypt

DESCryptoServiceProviderしかし、などを使用したより短い解決策があるかどうか疑問に思っています.

4

2 に答える 2

2

従来型および拡張 DES クリプト ソルティングの両方が、展開関数の結果を並べ替えます。ソルトに設定されたビット i ごとに、展開関数の結果のビット i と i+24 を交換します。

これはラウンドの途中で発生するため、salt がゼロでない限り (順列が発生しないことを意味します)、フレームワーク暗号化を使用することはできません。

それでも、DES の再実装には 1 ~ 2 キロバイトしかかかりません。私のCryptSharpライブラリは、従来の拡張された DES、MD5、SHA256、SHA512、および bcrypt アルゴリズムを実装しています。MD5 および両方のSHA 暗号化方式 (メソッド $1$、$5$、および $6$) では、フレームワーク暗号化が使用されます。どうしても DES 暗号化方式を使用する必要がない場合は、ShaCrypter.cs を参照してください。これはかなり短いものです。

于 2013-05-07T12:30:06.037 に答える