尛丶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 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误