You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AES解密时StreamReader返回空字符串的问题求助

使用AES解密时StreamReader返回空字符串的问题求助

各位大佬好!最近在做AES加解密功能,加密逻辑写出来了,但解密环节直接卡壳——用StreamReader读取解密后的内容居然返回空字符串,试了好多次都这样,实在摸不着头脑,来求各位帮忙看看问题出在哪!

先贴一下我的加密代码:

public static byte[] TestEncrypt(string plainText, byte[] key, byte[] iv) {
    using Aes aes = Aes.Create();
    aes.Key = key;
    aes.IV = iv;

    // Create a new MemoryStream object to contain the encrypted bytes.
    using MemoryStream memoryStream = new MemoryStream();
    // Create a CryptoStream object to perform the encryption.
    using CryptoStream cryptoStream = new CryptoStream(memoryStream, aes.CreateEncryptor(), CryptoStreamMode.Write);
    // 我是用StreamWriter把明文写入CryptoStream的,代码大概是这样:
    using StreamWriter streamWriter = new StreamWriter(cryptoStream);
    streamWriter.Write(plainText);
    // 后来才想到可能要补这个,但加了还是没解决解密空的问题
    cryptoStream.FlushFinalBlock();
    return memoryStream.ToArray();
}

再贴一下解密的代码:

public static string TestDecrypt(byte[] cipherText, byte[] key, byte[] iv) {
    using Aes aes = Aes.Create();
    aes.Key = key;
    aes.IV = iv;

    using MemoryStream memoryStream = new MemoryStream(cipherText);
    using CryptoStream cryptoStream = new CryptoStream(memoryStream, aes.CreateDecryptor(), CryptoStreamMode.Read);
    using StreamReader streamReader = new StreamReader(cryptoStream);
    // 这里读出来的居然是空字符串!
    return streamReader.ReadToEnd();
}

我确认过密钥和IV完全对应,加密后的字节数组也有正常长度,但解密后就是读不出内容。有没有大佬遇到过类似的坑?求指点!

备注:内容来源于stack exchange,提问作者Gouri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:48:20