.net 加密错误:填充无效,无法移除

今天用System.Security.Cryptography加密。使用了AesManaged,报错:填充无效,无法移除。分析是解密失败,密文损坏,或者KEY,IV不正确。

using (AesManaged aesAlg = new AesManaged())
{
    aesAlg.Key = Encoding.Unicode.GetBytes("password");
    aesAlg.IV = aesAlg.Key;

     using (ICryptoTransform decryptor = aesAlg.CreateDecryptor())
                {
                    return decryptor.TransformFinalBlock(cipherBytes, 0, cipherBytes.Length);
                }

 }

.net 加密错误:填充无效,无法移除,布布扣,bubuko.com

时间: 2024-08-03 18:36:00

.net 加密错误:填充无效,无法移除的相关文章

C# .net 填充无效,无法被移除 微信小程序解密失败的解决办法

微信小程序获取用户信息诸如unionId的时候需要解密,如果遇到偶然的解密失败(填充无效,无法被移除),原因很有可能是session_key错误, 也是就你用作解密的session_key并不是微信用作加密的那个了,但是并不代表你的session_key已经失效. C#解密代码(亲测有效,可以直接复制使用) /// <summary> /// Aes解密 /// </summary> /// <param name="str">需要解密的字符串<

ThinkPHP 自动验证与自动填充无效可能的原因

原文链接:http://www.5idev.com/p-thinkphp_validate_auto_Invalid.shtml 自动验证与自动填充是在使用ThinkPHP时经常用到的功能,但偶尔会遇到自动验证与自动填充无效的情况,本文就ThinkPHP 自动验证与自动填充无效可能的原因做一些分析. create() ThinkPHP 自动验证与自动填充是在创建数据对象 create() 时实现的,因此自动验证与自动填充无效很大程度上与 create() 有关. create 方法语法如下: c

HTTP 400 错误 - 请求无效 (Bad request)

在ajax请求后台数据时有时会报 HTTP 400 错误 - 请求无效 (Bad request);出现这个请求无效报错说明请求没有进入到后台服务里: 原因:1)前端提交数据的字段名称或者是字段类型和后台的实体类不一致,导致无法封装: 2)前端提交的到后台的数据应该是json字符串类型,而前端没有将对象转化为字符串类型: 解决方案: 1)对照字段名称,类型保证一致性 2)使用stringify将前端传递的对象转化为字符串    data: JSON.stringify(param)  ;

支付宝接口开发提示错误代码 invalid-signature 错误原因: 无效签名

今天做支付宝接口开发,参照官方的实例代码,但是一直提示报错:错误代码 invalid-signature 错误原因: 无效签名 而官方的例子却不报错,经过反复的测试发现,是因为官方代码里参数是通过POST赋值的 $out_trade_no = trim($_POST['WIDout_trade_no']);//商户订单号,商户网站订单系统中唯一订单号,必填 $subject = trim($_POST['WIDsubject']);//订单名称,必填 $total_amount = trim($

excel出现错误1327 无效的驱动器

错误描述:错误1327 无效的驱动器 错误程序:excel 2003 这是office安装源的位置被移动造 成的的,大部分时候安装时可能使用了移动硬盘或者在安装后调整了盘符就会造成这个问题.官方的说法是如果想解决可以使用DispTool工具将安装源缓存重新移动到一个合法的位置.实际上你可以删除这个安装源.这样只是你如果想添加其他组件时要重新提供安装源. 下面是该工具的链接:http://www.microsoft.com/en-us/download/details.aspx?id=18304

AJAX请求返回HTTP 400 错误 - 请求无效 (Bad request)

在ajax请求后台数据时有时会报HTTP400错误-请求无效(Badrequest);出现这个请求无效报错说明请求没有进入到后台服务里: 原因: 1)前端提交数据的字段名称或者是字段类型和后台的实体类不一致,导致无法封装: 2)前端提交的到后台的数据应该是json字符串类型,而前端没有将对象转化为字符串类型: 3)少传参数,后台要求必传的参数 解决方案: 1)对照字段名称,类型保证一致性 2)使用stringify将前端传递的对象转化为字符串data:JSON.stringify(param);

Delphi 运行后错误提示“无效的授权说明”

Delphi 运行后错误提示“无效的授权说明” 一般情况是:数据库的连接出现了问题. 解决方法:检查加载数据库是否正常,能否正常连接. 原文地址:https://www.cnblogs.com/guorongtao/p/11994507.html

微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed

解密加密源码 1 using System; 2 using System.Security.Cryptography; 3 using System.Text; 4 5 namespace Wechat 6 { 7 public static class Security 8 { 9 public static string Decrypt(string key, string iv, string data) 10 { 11 var rgbKey = Convert.FromBase64St

解决解密时出现&quot;要解密的数据的长度无效&quot; 或 &quot;填充无效无法被移除&quot; 的错误

1.首先排除数据库中读取加密后的字段是否被强制截断. 2.AES加密后的byte[]首先应用base64( Convert.ToBase64String)编码一次,若直接用utf8的话会报上述错误,若用unicode编码的话会解密成乱码,原因是加密后的byte数组用其他编码方式编码的话会丢失字符. 3.base编码后的字符串恢复为数组可用Convert.FromBase64String. 加密: public static byte[] AESEncrypt(string plainText)