文字列をSystem.Security.Cryptography.DES
で暗号化しようとしましたが、プログラムを実行するたびに暗号化の結果が変更されました。 アプリケーションを実行するたびに同じ結果を得る方法がわかりません。同じ結果を得るために追加する定数がありますか? 私は私がアプリケーションを開く次の時間にバイトの配列の結果を入力したときに、このコードでは「グーグル」DESクラスを使用してSystem.Security.Cryptographyを使用して暗号化する#
byte[] plaintextBytes = (new UnicodeEncoding()).GetBytes(expireddate);
SymmetricAlgorithm sa = DES.Create();
MemoryStream msEncrypt = new MemoryStream();
CryptoStream csEncrypt = new CryptoStream(msEncrypt, sa.CreateEncryptor(), CryptoStreamMode.Write);
csEncrypt.Write(plaintextBytes, 0, plaintextBytes.Length);
csEncrypt.Close();
byte[] encryptedTextBytes = msEncrypt.ToArray();
は、このコードから「グーグル」のですか?入力したときに、私が欲しいですかあなたが暗号化された安全IV(初期化ベクトルに)あなたは、プレーンテキストを再暗号化するたびに生成され
MemoryStream msDecrypt = new MemoryStream(decodedlistbyte.ToArray());
CryptoStream csDecrypt = new CryptoStream(msDecrypt, sa.CreateDecryptor(), CryptoStreamMode.Read);
byte[] decryptedTextBytes = new Byte[decodedlistbyte.Count];
csDecrypt.Read(decryptedTextBytes, 0, decodedlistbyte.Count);
csDecrypt.Close();
msDecrypt.Close();
string decrypteddate = (new UnicodeEncoding()).GetString(decryptedTextBytes);
塩はおそらく毎回変わります。 (これは正しいことです!) –
しかし、暗号化の後、私は別のPCで復号化するので、復号化の結果は暗号化で入力したものでなければなりません! – kartal
鍵は安全でプライベートな鍵でなければなりません。塩はプレーンテキストで保存して共有できます。 –