尛丶MaTure 2017-03-20 16:25 采纳率: 0%
浏览 4390
已结题

关于C# AES加密的PaddingMode的问题

    public static string AesEncrypt(string str, string key, string iv)
    {
        if (string.IsNullOrEmpty(str)) return null;

        Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);
        byte[] keyArr = Encoding.UTF8.GetBytes(key);
        byte[] ivArr = Encoding.UTF8.GetBytes(iv);

        System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged();

        /***************************这里有问题*****************************/
        rm.Padding = System.Security.Cryptography.PaddingMode.None;
        /******************************************************************/

        rm.Mode = System.Security.Cryptography.CipherMode.CFB;
        rm.BlockSize = 128;

        System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateEncryptor(keyArr, ivArr);

        Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

        return Convert.ToBase64String(resultArray, 0, resultArray.Length);
    }

方法调用

String str = "appid=pm93c050eb69884a50&appsecret=b24ee0ef-73be-4a9a-a884-e0c0e27c&timestamp=1489732369";
string aa = AesEncrypt(str, "dha@wjw$pvms9wwl", "8807599889957088");

PaddingMode设置成PaddingMode.None 不填充时 总会报错

有人知道这个问题怎么解决吗


```![图片说明](https://img-ask.csdn.net/upload/201703/21/1490027098_177459.png)

  • 写回答

3条回答 默认 最新

  • yangbo50304 2017-03-21 02:30
    关注

    不适用填充的话,你如何保证你的明文是AES128(bit)/AES256(bit)的倍数呢?

    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制