動作しません。これは、テキストを暗号化し、暗号文を返すため、メソッドです:C#の暗号化方式は
public static string Encrypt(this string clearText, CryptologyMethod method)
{
ICryptoTransform cryptoTransform = null;
switch (method)
{
case CryptologyMethod.TripleDes:
cryptoTransform = new TripleDESCryptoServiceProvider().CreateEncryptor(Config.TripleDesKey, Config.TripleDesIV);
break;
case CryptologyMethod.AES:
cryptoTransform = new AesCryptoServiceProvider().CreateEncryptor(Config.AesKey, Config.AesIV);
break;
}
using (MemoryStream memoryStream = new MemoryStream())
{
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, cryptoTransform, CryptoStreamMode.Write))
{
using (StreamWriter streamWriter = new StreamWriter(cryptoStream))
{
streamWriter.Write(clearText);
cryptoStream.FlushFinalBlock();
return memoryStream.Text();
}
}
}
}
public enum CryptologyMethod
{
TripleDes,
AES
}
Text()
は、ストリームの内容を読み取るために、拡張メソッドです:
public static string Text(this Stream stream)
{
return new StreamReader(stream).ReadToEnd();
}
また、Config.TripleDesKey
などのプロパティは、コンフィギュレーションファイルから読み取られたバイトの配列を返します。
問題は、私はこの拡張メソッドを使用すると、結果は常に空の文字列であるということです:
文字列の暗号文=「いくつかのクリアテキスト」.Encrypt(CryptologyMethod.TripleDes)。 // cipherTextが空です
どうしたらよいですか? –
私はdownvoteをしませんでした - しかし:問題は何ですか?コンパイラエラー? 「間違った」暗号化? – Yahia
5Kの代理人を抱えている人には、質問する方法が分かりません。エラーは何ですか、入力は何ですか、期待される出力は何ですか?あなたはそれを記入した後にストリームの位置をリセットする必要があることを認識していますか? – leppie