问题标签 [rijndaelmanaged]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1798 浏览

.net - 加盐值是 Rijndael 或 AES 加密的基本良好实践吗?

我已经使用 .NET 中的 Rijndael/AES 加密提供程序实现了加密功能。我对算法的“理解”表明,只要密钥和 IV 不被泄露,那么数据就是安全的。但是,我在一些网站上阅读过,其中盐渍密码是最佳做法。让我感到困惑的是,似乎只有基于哈希函数的加密才需要加盐。 使用 Rijndael 或 AES 时的最佳做法是什么,应该加盐什么值(明文、密钥、IV)?

0 投票
1 回答
1209 浏览

.net - 使用 Rijndael.Create() 而不是 new RijndaelManaged() 是否安全

我已经阅读了一些关于这个主题的内容,但我仍然对我看到的答案不是 100% 满意。

当您使用创建加密算法Rijndael.Create()时,您会得到一个类型的对象- 这与调用(或者对于您的 VB 人)RijndaelManaged之间似乎没有区别。:)new RijndaelManaged()New RijndaelManaged()

根据我的阅读,该Rijndael.Create()方法存在,因此您无需担心具体的实现,以防它在未来的版本中发生变化。但我的问题是:假设确实发生了,.NET 5.0 返回一个不同的实现。是否可以保证使用 RijndaelManaged 加密的项目可以毫无问题地使用 解密SomeFutureRijndaelManaged

我无法想象它们会不兼容,但我只是想确认一下。

谢谢

0 投票
2 回答
2226 浏览

security - 解密文件时索引超出范围

我真的不确定这里发生了什么。我的应用程序正在正确加密文件并且没有问题,但是在尝试解密同一文件时抛出了 IndexOutOfRangeException ...

这是我的代码:

错误出现Stream.Close()在行上。
我在其他地方应用了相同的代码,它没有任何问题......

这是我的堆栈跟踪:

System.IndexOutOfRangeException 被捕获 Message="Index is outside the bounds of the array."
Source="mscorlib" StackTrace:在 System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast) 在 System.Security.Cryptography .RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) at System.Security.Cryptography.CryptoStream.FlushFinalBlock() at System.Security.Cryptography.CryptoStream.Dispose(Boolean disposing) at System.IO.Stream.Close () 在 D:\Development\Projects\Web\WebSite1\App_Code\Crypt.vb:line 34 InnerException 中的 Crypt.EncryptDecrypt(String Action, String InFile, String OutFile):

任何帮助将不胜感激。

编辑 1 在 aaz 发表评论后,我修改并替换了

这是生成的堆栈跟踪:

System.IndexOutOfRangeException 被捕获 Message="Index is outside the bounds of the array." Source="mscorlib" StackTrace:在 System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] > inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 > outputOffset, PaddingMode paddingMode, Boolean fLast) 在 System.Security .Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] > inputBuffer, Int32 inputOffset, Int32 inputCount) 在 System.Security.Cryptography.CryptoStream.FlushFinalBlock() 在 System.Security.Cryptography.CryptoStream.Dispose(Boolean disposing) 在 System.IO。 Stream.Close() at Crypt.EncryptDecrypt(String Action, String InFile, String OutFile) in > D:

在我看来,这是同样的错误......

结束编辑 1

0 投票
2 回答
2058 浏览

c# - 使用 Rijndael 解密时出现异常

我有一些用 Rijndael 解密密码的代码

问题是处理加密流会导致异常

我发现了一些类似问题的链接,但没有解决方案。

仅删除加密流的处置是否安全,或者只会导致终结器在以后爆炸?

0 投票
4 回答
7990 浏览

c# - RijndaelManaged Decryption - 如何优雅地删除填充/0?

如何从解密的字符串中删除填充?我正在使用 RijndaelManaged 提供程序来加密和解密。/0/0/0/0/0/0当我解密时,字符串末尾有几个。我的问题是如何优雅地(正确地)从结果字符串中删除字符?

0 投票
2 回答
2285 浏览

silverlight-4.0 - 在 Silverlight 中使用 RijndaelManaged 加密

我正在实现一个使用 128 位 Rijndael 加密请求所需的 web 服务客户端。因为 Silverlight 中不存在 RijndaelManaged 类,所以我遵循了此处的建议:此处已讨论过:AesManaged 和 RijndaelManaged

结果是我得到的结果是正确的(我的意思是,我使用 RijndaelManaged 得到的结果与前 32 个字符(128 位)相同),正好是块大小。我无法弄清楚我在这里做错了什么。我的 .Net 实现(RijndaelManaged)是这样的:

而我的 Silverlight 是:

0 投票
1 回答
211 浏览

c# - Get password from a known key-iv-combination (RijndaelManaged in C#)

Is it possible to "calculate" a valid password string when the Key and the IV (as strings) for a RijndaelManaged-Key are known?

0 投票
6 回答
4800 浏览

c# - C# AES Rijndael - 检测无效密码

我正在使用 Rijndael 加密程序中的一些敏感数据。

当用户输入错误的密码时,大多数时候CryptographicException会抛出 a 消息“填充无效,无法删除。”。

然而,在非常小的概率下,CryptStream 不会抛出错误密码的异常,而是返回一个错误解密的流。换句话说,它解密为垃圾。

知道如何检测/防止这种情况吗?我能想到的最简单的方法是在加密时在消息的开头放置一个“幻数”,并在解密后检查它是否仍然存在。

但如果有更简单的方法,我很想听听!

0 投票
1 回答
6560 浏览

c# - 使用 Java 解密由 .NET 的 RijndaelManaged 加密的字节

我正在尝试解密使用 .NET/C# 的 RijndaelManaged 加密的东西,使用 Java 进行解密。

C# 程序不是我的;我无法将其更改为更具互操作性。但我知道它是如何加密的:

我不知道如何在 Java 端解密这个。我发现最接近有用的是这篇博文,但它对实际细节很清楚,我无法实现解密器。

编辑:我是个白痴,现在让它工作。

UnicodeEncoding是 UTF-16LE,而我使用的是 UTF-8。插入密码时切换到正确的编码已修复程序。

我还需要得到 BouncyCastle 并做Cipher.getInstance("AES/CBC/PKCS7Padding", "BC");

finaledit:这是从 Java 中的 .NET 解密默认RijndaelManaged 流的代码,假设它是使用原始密码作为密钥创建的:

请记住:如果您控制 C# 端,请不要使用未派生的密码作为您的密钥!

0 投票
2 回答
13738 浏览

c# - 使用 Rijndael 加密/解密文件

我需要传输 xml 文件,并且需要对它们进行加密。我发现一些例子认为我很接近,但是当我解密文件时,我最终得到了尾随的垃圾字符。有一些关于这个的帖子,但我还没有看到任何可以帮助的帖子。这是加密和解密代码。

我最终得到