CryptoStream 和经过身份验证的加密模式

2024-04-04

我有兴趣提供一个在 .Net 中使用的托管 dll,它提供经过身份验证的加密服务。 DLL 可以在 WPF 程序或 ASP 应用程序中使用。我有几个与 Microsoft 的加密和流模型相关的问题。

经过身份验证的加密模式(CCM、CWC、EAX、GCM 等)通常会产生两个工件 - 第一个是密文,第二个是身份验证标签。流式加密相当容易,但可能存在一些问题。例如,由于标头的构建方式和经过身份验证的加密模式会产生身份验证标签,CCM 无法进行流式传输。

解密比较棘手,因为它无法流式传输。解密无法进行流式传输,因为所有密文必须可用,并且密文在解密之前必须使用身份验证标签进行验证。

如何为分组密码采用经过身份验证的加密模式,以便它可以在CryptoStream?有可能吗?也许这就是微软不提供它的原因?

微软有推荐吗?例如,将大消息分解为较小的消息或单元(每个消息或单元都有自己的标签)?或者 MS 是否建议缓冲直到输入整个消息和标签?

Microsoft 建议将标签“放置”在哪里?在流的开头?在流的末尾?

一些有用的参考:

  • 对称算法类 http://msdn.microsoft.com/en-us/library/system.security.cryptography.symmetricalgorithm.aspx
  • 密码模式枚举 http://msdn.microsoft.com/en-us/library/system.security.cryptography.ciphermode.aspx
  • 加密流类 http://msdn.microsoft.com/en-us/library/system.security.cryptography.cryptostream.aspx

2010年微软CLR安全团队发布了System.Security.Cryptography 的扩展 http://clrsecurity.codeplex.com/wikipage?title=Security.Cryptography.dll其中特别包括经过身份验证的对称加密GCM http://clrsecurity.codeplex.com/wikipage?title=Security.Cryptography.AuthenticatedAesCng。我不知道为什么从那以后他们就没有用它做任何事情。

但是,由于您的问题强调“微软会做什么?”,所以……他们就是这样做的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CryptoStream 和经过身份验证的加密模式 的相关文章

  • 如何使用 StreamWriter 写入文件?

    在我的 Wpf 应用程序中 我使用一个 Person 类 即基类 它包含一个虚拟方法 SaveData 以及从 Person 继承的其他类 Client 如何重写方法 SaveData 并保留基础数据 类人 public virtual v
  • 按字母顺序对列表进行排序

    我有以下课程 class Detail public Detail details new List
  • ASP.NET AJAX 进度条:从代码隐藏更新?

    我在应用程序中具有 Excel 电子表格的导入功能 目前它使用 FileUpload 控件 我上传文件 然后对该文件运行操作 我想通知用户正在完成的操作以及完成的百分比 我认为我可以获取从 Excel 电子表格中提取的总行数 并在将每条记录
  • 在 ViewModel 中使用 CollectionViewSource 的正确方法

    我使用拖放将数据源对象 数据库模型 绑定到DataGrid 基本上遵循这个例子实体框架与 WPF 的数据绑定 http msdn microsoft com en us data jj574514 通过这个实现 一切都运行良好 XAML
  • VB.net 应用程序保留以前的版本

    我有一个正在发布的 Visual Basic 项目 并且每次都会增加版本号 当我安装新版本时 它会打开 但一旦应用程序重新启动 它似乎就会恢复到以前的版本 我不知道为什么 尝试更新发布应用程序时所需的最低版本 转到应用程序属性 gt 发布
  • 在 ASP.NET 5 中创建基于每个请求控制器/操作的格式化程序

    我正在尝试在我的 ASP Rest API 中实现 HATEOAS 更改ReferenceResolverProvider 问题是 根据我使用的控制器 我想使用不同的ReferenceResolvers 因为我需要对每个控制器采取不同的行为
  • 如何从 DataGridView 数据单元格获取按键、按键事件

    我需要在单元格编辑期间接收按键事件DataGridView控制 从我在网上查到的DataGridView旨在传递所有关键事件DataGridView到单元格编辑控件 您无法轻松获取这些事件 我找到了这个一段代码 http www codep
  • 演示如何在 C# 4.0 中使用新的“dynamic”关键字

    这是 4 0 版本中新的 C 未来 称为动态 告诉我如何在我的代码中使用它以及这个未来可以如何帮助我 相关问题 新的 dynamic C 4 0 关键字是否弃用了 var 关键字 https stackoverflow com questi
  • 运行 Aero 时如何确定实际窗口窗体大小(包含所有非客户端元素)?

    我试图将我的表单精确定位在任务栏上方 不幸的是 我的努力受到了以下事实的阻碍 this Height在我的表单上返回一个比实际表单 包含所有边框 标题栏等 小 10 像素的值 我正在运行带 Aero 的 Windows 7 当 Aero 关
  • Bug:VS2017 Live 单元测试 - 只有减号 - 不起作用

    TL 博士 编辑6 我缩小了范围并提供了重现问题 错误的 5 个步骤 创建 VS2017 c 控制台应用程序 Net 完整框架 将方法添加到 Program cs 并使该类公开 public class Program static voi
  • 如何在C#中剪切、编辑和合并OGG文件?

    我有一个 ogg vorbis 文件 我必须用它执行两个操作 将文件的一部分从一个位置剪切到另一个位置 将另一个文件与现有文件合并 如何在 C 中执行这两个操作 你可以使用 libzplay 来做到这一点http libzplay sour
  • .NET ServiceModel.Syndicate - 更改 RSS 源的编码

    我正在尝试解决我在以下位置生成的所有 RSS 源的错误http captainobvio us http captainobvio us在 Internet Explorer 版本 8 和 9 中产生以下错误 进给代码错误 从当前切换 编码
  • 接口的隐式和显式实现

    在进行升级时 我碰巧遇到了这样的代码 interface ICustomization IMMColumnsDefinition GetColumnsDefinition class Customization ICustomization
  • .NET Framework 中的语言互操作性(基本概念)是什么?

    我正在阅读 NET框架 https en wikipedia org wiki NET Framework维基百科的文章 第一段描述了这个框架的一般概念 它说 它包括一个大型库 并提供跨多种编程语言的语言互操作性 每种语言可以使用用其他语言
  • 使用AOP技术拦截ADO.Net

    我有相当大的代码库 使用各种不同的 ADO 技术 即一些 EF 在某些情况下直接使用 ADO Net 我想知道是否有任何方法可以全局拦截任何 ADO Net 调用 以便我可以开始审核信息 例如执行的确切 SQL 语句 花费的时间 返回的结果
  • 添加到 .NET 任务栏中的右键单击应用程序菜单

    大多数应用程序只有 恢复 移动 调整大小 最小化 最大化和关闭 但是MS SQL提供了额外的选项 帮助 自定义视图 按照这些思路 是否可以添加到任务栏中应用程序的右键单击菜单 注 我是not指通知区域中时钟旁边的图标 这是一个更简单的ans
  • 为什么“Assembly”和“Module”没有公开定义的构造函数?

    我正在用 C 构建一个 NET 程序集加载器 以进行 实验 了解有关 NET 内部操作的更多信息 我通过派生类型实现了反射 API 例如 运行时类型 类型 运行时字段信息 字段信息 运行时方法信息 方法信息 运行时参数信息 参数信息 运行时
  • RichTextbox SelectionStart 返回错误的索引

    我需要向用户显示光标上文本的选择开始和长度 就像在 notepad exe 中一样 选择长度没有问题 因为 Richtextbox 支持带有开始和结束的选择属性 http msdn microsoft com en us library s
  • 从 RichTextBox 复制文本及其格式

    如何将 RichTextBox 中的文本及其格式复制到写字板或网络浏览器 就像复制纯文本一样 您可以使用Clipboard SetText method http msdn microsoft com en us library 6eahs
  • .NET 或 Windows 同步原语性能规范

    我目前正在写一篇科学文章 我需要非常准确地引用 有人可以向我指出 MSDN MSDN 文章 一些已发表的文章来源或一本书 我可以在其中找到 Windows 或 NET 同步原语的性能比较 我知道这些是按性能降序排列的 互锁 API 关键部分

随机推荐

  • Visual Studio 2010 - 推荐的扩展[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 启动时加载 FastAPI 项目中的模型

    所以我目前正在开发一个为多种 NLP 服务提供服务的 FastAPI 项目 为此 我想提供来自 spacy 和 Huggingface 的不同模型 自从那些模型相当大的推理时间为每个发布请求加载模型相当长 我的想法是在 FastAPI 启动
  • 如何更改handleError?

    我有 jquery 脚本 它应该向我的文件发送响应 如果一切顺利 我会成功 但如果错误 我应该得到错误函数 但我得到jQuery handleError is not a function jQuery handleError s xml
  • 为 Python 3 安装 ipdb? [复制]

    这个问题在这里已经有答案了 我安装了ipdb https pypi python org pypi ipdb using pip 但我仍然得到 ImportError No module named ipdb 我还需要做其他事情才能引入这个
  • module.exports 返回未定义

    我目前是新来的Node JS 今天我试图read文件中的数据data json 这是 JSON 文件 username rahul v7 password 9673 username 7vik password 3248 username
  • phpmyadmin - Mysql 没有权限

    我在 Windows 7 上安装了 wamp 2 1 但是 当我打开 phpMyAdmin 时 出现错误 Mysql No Provileges 我卸载了wamp并重新安装了几次 但没有帮助 有谁知道如何解决这个问题 另外 当我尝试从 my
  • 使用 JavaScript 打开和关闭 CKEditor 4 内联编辑

    我需要能够使用按钮打开 关闭内联编辑 请参阅此处的内联编辑示例 http nightly v4 ckeditor com 3559 samples inlineall html http nightly v4 ckeditor com 35
  • 在 C 系列中,在循环中为什么“小于或等于”比“小于”符号更受青睐? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 为什么在 C 系列语言中 当我们对任何循环使用计数器时 最优选的比较是Greater Equal To lt 或者它的倒数 请看一下这三段代码
  • 使用 css 绘制图像内的曲线

    是否可能以及如何在图像顶部和底部内制作一条曲线 请参见图像 我怎样才能用CSS实现这一点 将您的图像设置为 div 上的背景图像并使用此技术 我在示例中使用了纯红色 这里我使用伪元素来创建顶部和底部的曲线 请注意 顶部和底部偏移量是每个伪元
  • Mockito:验证来自内部匿名类的方法调用

    我有一个正在测试的类 其中包含一个具有内部匿名类的方法 匿名类中的方法之一调用被测类中的方法 但 Mockito 似乎没有意识到这一点 public class ClassUnderTest Dependency dependency pu
  • C# 中的 SplitContainer 拆分器?

    i am using a split container For some reason the splitter looks like this 很难看到 就是两条黑线中间那条微弱的两条线 我该如何解决这个问题并在两条线之间添加填充 我使
  • Log4Net 可用于 adoappender 的数据库字段 - 似乎还有更多,即 method_name?

    我最近创建了简单的 log4net 数据库表 用于通过 adonet 附加程序进行日志记录 并且它有效 但后来我注意到另一个网站使用额外的字段 看 哇 我很想知道在哪里可以获得可用字段名称的列表 例如 Method name 真的让我思考
  • 使用相对导入路径时 Aurelia 捆绑失败

    我将 aurelia 与 typescript 一起使用 我想避免使用相对导入路径 例如 import DialogBox from resources elements dialog box 反而 import DialogBox fro
  • 具有unpivot自动抓取列列表(oracle 11g)

    这是一个后续问题将一行转置为多行 Oracle https stackoverflow com questions 2344403 transpose one row into many rows oracle 我希望能够反转任意查询结果
  • ubuntu 12.04 中 android-ndk-r9d-linux-x86 的 ndk-gdb 出现错误

    我在ubuntu 12 04中使用android ndk r9d linux x86的ndk gdb来调试android本机应用程序 hello jni 但它收到此错误 WARNING The shell running this scri
  • 无限滚动抓取网站

    我写了很多抓取工具 但我不太确定如何处理无限滚动条 如今 大多数网站 例如 Facebook Pinterest 都有无限滚动条 您可以使用 selenium 废弃 twitter 或 facebook 等无限滚动网站 步骤 1 使用 pi
  • 我可以将 xmodem 协议与 PySerial 一起使用吗?

    我通过 PySerial 与串行设备建立了工作连接 但我也想通过 xmodem 协议传输文件作为我的程序的一部分 哪一种是最平台中立的方式来做到这一点 最坏的情况 我可以close my serial SerialPython中的对象及其使
  • 如何在Python中从.pb文件恢复Tensorflow模型?

    我有一个 tensorflow pb 文件 我想将其加载到 python DNN 中 恢复图形并获取预测 我这样做是为了测试创建的 pb 文件是否可以做出与正常 Saver save 模型类似的预测 我的基本问题是 当我使用上述 pb 文件
  • Laravel Web 和 API 控制器结构。分开与干燥

    我想构建一个同时使用 Web 和 API 部分的 Laravel 应用程序 常见的 也是我的 问题是是否使用单独的控制器 有 2 个选项 独立控制器Laravel API 控制器结构 https stackoverflow com ques
  • CryptoStream 和经过身份验证的加密模式

    我有兴趣提供一个在 Net 中使用的托管 dll 它提供经过身份验证的加密服务 DLL 可以在 WPF 程序或 ASP 应用程序中使用 我有几个与 Microsoft 的加密和流模型相关的问题 经过身份验证的加密模式 CCM CWC EAX