かなり標準的なアルゴリズムを使用して文字列を復号しようとしています。aspnetコアの文字列の暗号化と復号化
System.Security.Cryptography.CryptographicException:私はエラーを取得しておく
public static string DecryptString(string cipherText) { string keyString = string.Empty; // Check whether the environment variable exists. keyString = Environment.GetEnvironmentVariable("EncryptKey"); if (keyString == null) { keyString = "E546C8DF278CD5931069B522E695D4F2"; } var fullCipher = Convert.FromBase64String(cipherText); using (var aesAlg = Aes.Create()) { byte[] iv = new byte[aesAlg.BlockSize/8]; var cipher = new byte[16]; Buffer.BlockCopy(fullCipher, 0, iv, 0, iv.Length); Buffer.BlockCopy(fullCipher, iv.Length, cipher, 0, iv.Length); var key = Encoding.UTF8.GetBytes(keyString); using (var decryptor = aesAlg.CreateDecryptor(key, iv)) { string result; using (var msDecrypt = new MemoryStream(cipher)) { using (var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) { using (var srDecrypt = new StreamReader(csDecrypt)) { result = srDecrypt.ReadToEnd(); } } } return result; } }
指定されたパディングモードは、このアルゴリズムは有効ではありません。
私はまだこの時点でエラーが発生します。この
var iv = new byte[16];
var cipher = new byte[16];
それとも
var iv = aesAlg.IV;
のような複数の方法を試してみました。私は間違って何をしていますか?
[指定されたキーはこのアルゴリズムの有効なサイズではありません](http://stackoverflow.com/questions/2919228/specified-key-is-not-a-valid-size-for-this-algorithm) ) – Eris
メッセージはどのように暗号化されましたか、PHP mcryptのようなどの言語と実装 – zaph
[@ w2olves]あなたはそれを解決しましたか? –