C# 中的 Rijndael 密钥大小

2024-01-12

我目前正在用 C# 开发一个小工具,可以让我快速加密我的文件。所以我用了这个脚本 http://www.codeproject.com/Articles/26085/File-Encryption-and-Decryption-in-C这看起来对我来说很完美。但我仍然有一个问题:密钥太短(最多 8 个字符)。我在 RijndaelManaged() 文档中读到密钥的最大大小是 256 位,因此我应该能够使用 64 个字符的密钥...(如 sha256 哈希)

但每次我尝试增加密钥大小时,即使是 9 个字符,我也会收到一条漂亮的“加密失败!”。我已经在谷歌上寻找解决方案一段时间了,但没有什么用处。

我发现的最好的东西is this https://stackoverflow.com/questions/6460793/using-rijndael-to-encrypt-decrypt-files。所以我尝试更改填充,例如:

RMCrypto.Padding = PaddingMode.ISO10126;

// or
RMCrypto.Padding = PaddingMode.ANSIX923;

但这并没有改变任何事情......


Rjindael 的密钥大小是not自由选择。它必须是 128 位、192 位或 256 位。它不能是 9 字节、18 字节或 36 字节。它必须严格为 16 字节、24 字节或 32 字节。

此外,您应该首先适当地指定您的密钥大小before你可以正确使用该类。虽然 128 位和 192 位密钥大小都是允许的,但您不能将密钥大小指定为 128 位,但使用 192 位密钥。您指定的密钥大小必须与您使用的密钥大小匹配。

这是您如何执行此操作的示例:

您可以指定密钥大小(不要与BlockSize) 在里面RjindaelManaged.KeySize财产:

RMCrypto.KeySize = 256;

然后 byte[] 中的密钥大小应与上面密钥的大小匹配:

byte[] key = new byte[]{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }; 
RMCrypto.Key = key;

请务必使用看起来像随机噪声的密钥以获得一定的安全性。

目前您的密钥太短:

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

C# 中的 Rijndael 密钥大小 的相关文章

  • 无法使用c#更改视频捕获分辨率

    我正在尝试使用 C 中的 DirectShowNet 更改默认网络摄像头分辨率 据我所知 我需要通过调用 windows win32 api dll 中内置的 VideoInfoHeader 类来更改它以进行 avi 捕获 我有来自 Dir
  • 如何使用 Entity Framework 和 Identity 解决对象处置异常 ASP.NET Core

    我正在尝试编写一个控制器 该控制器接收来自 AJAX 调用的请求并通过 DBContext 对数据库执行一些调用 但是 当我发出命令时var user await GetCurrentUserAsynch 在对 DBContext 的任何调
  • getline 之后返回到文件开头

    所以我已经从文件中读取了所有行 while getline ifile line logic 其中 ifile 是 ifstream line 是字符串 我的问题是我现在想再次使用 getline 并且似乎无法返回到文件的开头 因为运行 c
  • 如何通过覆盖 MSBuild 目标来防止外语资源生成?

    我正在致力于减少大型 C ASP NET 解决方案的编译时间 我们的解决方案使用通常的 resx 文件方法翻译成大约十几种外语 这些资源文件的解析和编译极大地减慢了我们的编译时间 并且是日常的挫败感 我知道可以创建自定义资源提供程序并摆脱
  • C# 异步任务比同步慢

    你知道为什么同步斐波那契方法比异步 等待更快并且比异步任务更快吗 我在每个项目方法上都使用了异步 所以主要是这是一个非常糟糕的方法 Code static int FibonacciSync int number if number 0 r
  • 头文件中实现的函数的静态与内联

    我想到的方式inline在 C 中用于链接 作用域 我把它放在同一个篮子里extern and static对于全局对象 通常 对于在头文件中实现的函数 我的首选解决方案是将其设为静态 In Foo h static void foo Do
  • C# 中类似图的实现

    所以我有一个对象 我们称之为 Head 它有一个对象列表 C C1 C2 C3 T T1 T2 和 M M1 M2 并且所有这些都是相互关联的 例如 Head gt C1 C2 C3 T1 T2 M1 M2 T1 gt C1 C2 T2 g
  • 如何使用c#从数据桶中获取所有文档?

    如何获取数据桶中的所有文档 我尝试过一个示例 但我只能获得一个特定的文档 这是我的代码 CouchbaseClient oclient oclient new CouchbaseClient vwspace data bucket name
  • 选择initializer_list迭代器定义

    Why std initializer list
  • 为什么像 BindingList 或 ObservableCollection 这样的类不是线程安全的?

    我一次又一次发现自己必须编写 BindingList 和 ObservableCollection 的线程安全版本 因为当绑定到 UI 时 这些控件无法从多个线程更改 我想理解的是why情况就是这样 这是设计错误还是故意的 问题是设计一个线
  • 如何在 Visual Basic DLL 和 C++ DLL 之间创建隔离/免注册 COM?

    我必须在 C DLL 中使用 VB COM DLL 我弄清楚了如何从 C DLL 访问 VB COM DLL 并且它可以工作 现在我遇到了一个问题 我必须使用隔离的 COM 免注册 COM 因为我无法在必须使用它的每台 PC 上注册 DLL
  • 如何调试.NET Windows Service OnStart方法?

    我用 NET 编写的代码仅在作为 Windows 服务安装时才会失败 该故障甚至不允许服务启动 我不知道如何进入 OnStart 方法 如何 调试 Windows 服务应用程序 http msdn microsoft com en us l
  • ASP.NET MVC 动作过滤器

    有谁知道即使在 CATCH 块中 ActionFilterAttribute 类的 OnResultExecuted 方法是否也会执行 ie CookiesActions public ActionResult Login Usuarios
  • 如何在 C++ 运行时更改 QML 对象的属性?

    我想在运行时更改 QML 对象的文本 我尝试如下 但文本仍然为空 这是后端类 class BackEnd public QObject Q OBJECT Q PROPERTY QString userFieldText READ userF
  • 本地时间的内存需要释放吗?

    void log time t current time 0 tm ptm localtime current stuf 只是想确定 我是否需要在方法结束时释放 tm 指针分配的内存 不 你不应该释放它 该结构是静态分配的 检查文档 htt
  • 在特定线程上运行工作

    我想要一个特定的线程 任务队列并在该单独的线程中处理任务 应用程序将根据用户的使用情况创建任务并将其排队到任务队列中 然后单独的线程处理任务 即使队列为空 保持线程活动并使用它来处理排队任务也至关重要 我尝试过几种实现TaskSchedul
  • 如何释放字符串未使用的容量

    我正在程序中处理很多字符串 这些字符串数据在读入我的程序后的整个生命周期内都不会改变 但由于 C 字符串保留了容量 因此浪费了大量肯定不会被使用的空间 我尝试释放这些空间 但没有成功 以下是我尝试过的简单代码 string temp 123
  • 如果仅使用第一个元素,是否必须为整个结构分配内存?

    我有一个结构 其中第一个元素被测试 并且根据其值 结构的其余部分将被读取或不会被读取 在第一个元素的值指示结构的其余部分不会被读取的情况下 我是否必须为整个结构或仅第一个元素分配足够的内存 struct element int x int
  • C - 获取外部IP地址

    我需要通过 C C 调用获取我的公共 IP 地址 我知道作为替代方案 我可以从 http whatismyip akamai com 等外部链接获取 我写了一个示例来获取外部IP地址 但我的程序没有返回外部 IP 地址 我正在获取内部 IP
  • 检查一个数是否是完全平方数?

    我认为以下代码存在精度问题 bool isPerfectSquare long long n long long squareRootN long long sqrt n 0 5 return squareRootN squareRootN

随机推荐

  • UISearchBarStyleMinimal 在 UISearchBar 顶部显示范围按钮

    当我应用 UISearchBarStyleMinimal 时 我的范围按钮会绘制在搜索栏上 这是常规样式的样子 当我应用该样式时 我得到这样的结果 有谁知道为什么会发生这种情况 以及我能做些什么来解决它 当我删除范围按钮时 它看起来非常好
  • ModuleNotFoundError:尝试安装 dash 时没有名为“_brotli”的模块

    我尝试在 mac 操作系统上安装 dash 在 python 脚本上运行 import dash 时出现以下错误 Traceback most recent call last File app py line 16 in
  • “错误:没有匹配的函数可供调用”

    我正在使用键盘 并试图提高我使用 C 的技能 我以前从未使用过模板 所以我尝试研究如何使用它们 下面的代码是结果 不幸的是 它不起作用 我确实尝试寻找问题的解决方案 但由于我没有太多使用模板的经验 因此我无法在我的问题和其他问题之间建立任何
  • Firestore:从 id = x 的“子”集合中获取所有项目

    我正在使用 cloud firestore 作为后端数据库 因为我不太熟悉它 我对以下内容有点困惑 数据库设置 Messages collection gt itemId doc gt itemMessages collection gt
  • 在代码隐藏中更改文本框背景颜色

    我如何将代码隐藏中的文本框背景颜色更改为如下所示 Textbox1 BackColor F2F0E1 代替 Textbox1 BackColor System Drawing White 你可以尝试这样的事情 Textbox1 BackCo
  • 如何捕获引导日期选择器更改事件?

    现在我试图在用户更改日期后做一些事情 但好像我的ng change被忽略 这是我的代码示例
  • 通过 AddThis API 自动缩短电子邮件/Facebook 与 Bitly 共享的 URL

    使用 AddThis 中的内置 Bit ly 缩短服务时 我无法缩短 AddThis 电子邮件弹出窗口中显示的 URL 它适用于 Twitter 但不适用于 Facebook 和电子邮件 支持吗 var addthis share url
  • 删除特定字符之后的所有字符

    我有这样的话 Sams like costco Jecy penny like sears 在Java中 我想获取这个字符串并得到输出 Sams Jecy penny 有什么办法可以删除之后的所有字符 and 三个选项 Use indexO
  • 如何创建 RAR 压缩文件,压缩文件名中包含当前日期?

    我有文件夹D data有很多子文件夹和文件 我想用批处理文件将该文件夹存档到指定目录 并在存档文件名中添加当前日期 例如F 11 08 2016 data 到目前为止我的命令行是 C Program Files WinRAR rar exe
  • 在同一个表中回显具有相同列名的多个值

    我有 2 个表 一个用户表和一个交易表 看起来像 我现在的代码结构是 我面临的问题是我试图回显用户名 在一种情况下必须是接收者 而在另一种情况下必须是提供者 专家提示 Never use SELECT 除非您确切知道这样做的原因 否则在软件
  • Lambda 表达式 > 和 MethodInfo

    在将项目从VS2010迁移到VS2012时 我遇到了以下问题 该项目大量使用反射 为了从接口获取 MethodInfo 放置了以下代码 Expression
  • 在 DOCTYPE XSLT 2.0 Saxon9he 中插入 ENTITY 声明

    我的任务是将 XML 文档分解为单独的工作包 我遇到的唯一问题是在 DOCTYPE 中插入图形实体声明 如下所示 gt 不用介意实体名称中的扩展名 这就是他们在这里所做的 无论如何 实体将由所有 boardno可以在主 XML 文件中找到
  • Python Selenium - 弹出类似身份验证的警报

    嘿 Brilliant Stack Overflow 社区 我遇到了一个关于处理警报的有趣场景 例如弹出的用户身份验证框 1 使用的网站 练习网站 https the internet herokuapp com https the int
  • 具有特殊字符的 CSS 类

    我有一个 Web 应用程序 需要使用 CSS 文件来操作某些元素 CSS 类包含方括号和其他特殊字符 至少chrome似乎不直接接受它们 div class 123 div 这门课有效吗 有没有办法使用类名 我想 profile redSt
  • 将前端和后端部署到 azure 上的同一 Web 服务

    我有一个 Web 应用程序 它有一个单独的 Node JS 后端和 Angular 前端 是否可以让它们都在同一个 Azure Web 服务上运行 或者我需要为每个服务提供独立的服务吗 我的nodejs服务器只是一个轻量级API 它为我的角
  • 如何同时执行多个Guzzle请求?

    我可以使用 Guzzle 执行单个请求 并且到目前为止我对 Guzzle 的性能非常满意 但是 我在 Guzzle API 中读到了有关 MultiCurl 和批处理的内容 有人可以向我解释如何同时发出多个请求吗 如果可能的话异步 我不知道
  • 基于类属性实现接口,无需反射

    这一页 http www postsharp net aspects code introductionPostSharp 网站上有以下预告片 您将遇到的常见情况之一是需要在大量类上实现特定接口 这可能是INotifyPropertyCha
  • 如何从正则表达式组中排除字符?

    我想从字符串 python 中删除除连字符之外的所有非字母数字字符 如何更改此正则表达式以匹配除连字符之外的任何非字母数字字符 re compile W Thanks 您可以只使用否定字符类来代替 re compile r a zA Z0
  • 为什么维度顺序会随着布尔索引而改变?

    当我们有M形状的 a b c 和一个索引数组v我们用它来索引最后一个数组 为什么M i v 结果是一个形状数组 d b with d中真实值的数量v 如下图所示 In 409 M zeros 100 20 40 In 410 val one
  • C# 中的 Rijndael 密钥大小

    我目前正在用 C 开发一个小工具 可以让我快速加密我的文件 所以我用了这个脚本 http www codeproject com Articles 26085 File Encryption and Decryption in C这看起来对