问题标签 [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.
.net - 加盐值是 Rijndael 或 AES 加密的基本良好实践吗?
我已经使用 .NET 中的 Rijndael/AES 加密提供程序实现了加密功能。我对算法的“理解”表明,只要密钥和 IV 不被泄露,那么数据就是安全的。但是,我在一些网站上阅读过,其中盐渍密码是最佳做法。让我感到困惑的是,似乎只有基于哈希函数的加密才需要加盐。 使用 Rijndael 或 AES 时的最佳做法是什么,应该加盐什么值(明文、密钥、IV)?
.net - 使用 Rijndael.Create() 而不是 new RijndaelManaged() 是否安全
我已经阅读了一些关于这个主题的内容,但我仍然对我看到的答案不是 100% 满意。
当您使用创建加密算法Rijndael.Create()
时,您会得到一个类型的对象- 这与调用(或者对于您的 VB 人)RijndaelManaged
之间似乎没有区别。:)new RijndaelManaged()
New RijndaelManaged()
根据我的阅读,该Rijndael.Create()
方法存在,因此您无需担心具体的实现,以防它在未来的版本中发生变化。但我的问题是:假设确实发生了,.NET 5.0 返回一个不同的实现。是否可以保证使用 RijndaelManaged 加密的项目可以毫无问题地使用 解密SomeFutureRijndaelManaged
?
我无法想象它们会不兼容,但我只是想确认一下。
谢谢
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
c# - 使用 Rijndael 解密时出现异常
我有一些用 Rijndael 解密密码的代码
问题是处理加密流会导致异常
我发现了一些类似问题的链接,但没有解决方案。
仅删除加密流的处置是否安全,或者只会导致终结器在以后爆炸?
c# - RijndaelManaged Decryption - 如何优雅地删除填充/0?
如何从解密的字符串中删除填充?我正在使用 RijndaelManaged 提供程序来加密和解密。/0/0/0/0/0/0
当我解密时,字符串末尾有几个。我的问题是如何优雅地(正确地)从结果字符串中删除字符?
silverlight-4.0 - 在 Silverlight 中使用 RijndaelManaged 加密
我正在实现一个使用 128 位 Rijndael 加密请求所需的 web 服务客户端。因为 Silverlight 中不存在 RijndaelManaged 类,所以我遵循了此处的建议:此处已讨论过:AesManaged 和 RijndaelManaged
结果是我得到的结果是正确的(我的意思是,我使用 RijndaelManaged 得到的结果与前 32 个字符(128 位)相同),正好是块大小。我无法弄清楚我在这里做错了什么。我的 .Net 实现(RijndaelManaged)是这样的:
而我的 Silverlight 是:
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?
c# - C# AES Rijndael - 检测无效密码
我正在使用 Rijndael 加密程序中的一些敏感数据。
当用户输入错误的密码时,大多数时候CryptographicException
会抛出 a 消息“填充无效,无法删除。”。
然而,在非常小的概率下,CryptStream 不会抛出错误密码的异常,而是返回一个错误解密的流。换句话说,它解密为垃圾。
知道如何检测/防止这种情况吗?我能想到的最简单的方法是在加密时在消息的开头放置一个“幻数”,并在解密后检查它是否仍然存在。
但如果有更简单的方法,我很想听听!
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# 端,请不要使用未派生的密码作为您的密钥!
c# - 使用 Rijndael 加密/解密文件
我需要传输 xml 文件,并且需要对它们进行加密。我发现一些例子认为我很接近,但是当我解密文件时,我最终得到了尾随的垃圾字符。有一些关于这个的帖子,但我还没有看到任何可以帮助的帖子。这是加密和解密代码。
我最终得到