c# - 指定的初始化向量 (IV) 与此算法的块大小不匹配(Microsoft 示例)
问题描述
我从这里复制了代码,并更改了一些不重要的内容,现在出现此错误:
指定的初始化向量 (IV) 与此算法的块大小不匹配
byte[] publicKey = {214,46,220,83,160,73,40,39,201,155,19,202,3,11,191,178,56,
74,90,36,248,103,18,144,170,163,145,87,54,61,34,220,222,
207,137,149,173,14,92,120,206,222,158,28,40,24,30,16,175,
108,128,35,230,118,40,121,113,125,216,130,11,24,90,48,194,
240,105,44,76,34,57,249,228,125,80,38,9,136,29,117,207,139,
168,181,85,137,126,10,126,242,120,247,121,8,100,12,201,171,
38,226,193,180,190,117,177,87,143,242,213,11,44,180,113,93,
106,99,179,68,175,211,164,116,64,148,226,254,172,147};
byte[] exponent = { 1, 0, 1 };
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
MemoryStream ms = new MemoryStream();
RijndaelManaged rm = new RijndaelManaged();
RSAParameters rsaKeyInfo = new RSAParameters
{
Modulus = publicKey,
Exponent = exponent
};
rsa.ImportParameters(rsaKeyInfo);
byte[] encryptedSymmetricKey = rsa.Encrypt(rm.Key, false);
byte[] encryptedSymmetricIV = rsa.Encrypt(rm.IV, false);
CryptoStream cryptoStream = new CryptoStream(ms, rm.CreateEncryptor(encryptedSymmetricKey, encryptedSymmetricIV), CryptoStreamMode.Write);
(我只添加了CryptoStream
)
为什么在微软文章中他们加密密钥和 iv 如果然后抛出匹配大小的异常?出于什么目的加密此密钥和 iv,我如何使用此密钥和 iv 加密?
解决方案
推荐阅读
- django - Django 表单 - 如何使用 django 创建带有图像的单选按钮选项
- javascript - 如何避免三元未定义和布尔检查?
- javascript - 操作 innerHTML 时事件侦听器会消失吗?
- kubeflow - 新的 GCP Kubeflow Pipelines 部署是否支持 Containerd?
- java - Apache CXF,Spring-boot,一项服务,一项不同监听端口的 WSDL
- c# - 无法进行 Convert.Deserialize
- sap - 尝试将报告发送到目标时 SAP BI 出错
- node.js - 如何在虚拟字段getter函数中获取另一个模型数据?猫鼬
- python - 测试 graphviz 安装时遇到错误:“NoneType”对象没有属性“write_pdf”
- siddhi - 如何建立 Siddhi-Kafka 流连接?