问题标签 [cryptostream]
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.
c# - CryptoStream 实例关闭时抛出异常
我有一个使用 RijndaelManaged Cipher 的 DecryptString 函数。它在 99.999% 的时间都可以工作,但偶尔会引发“IndexOutOfRangeException”异常,并显示“索引超出数组范围”的消息。当它试图关闭 finally 块中的 cryptoStream 时。
当它停止工作时,它将停止工作20分钟左右,然后重新开始工作,没有明显的解释。我确实有一个线索是它只是
c# - 加密流:读取数据错误
我得到了这个(我也试过 crStream.CopyTo(ms)):
Data = Stream 并包含一个二进制序列化类
当我运行它时出现以下异常:“流不支持阅读。”
我想要完成的只是加密来自流的数据。所以我有一个传入流,我想加密该数据并将其放入内存流中。然后将其压缩并保存到文件中。
.net - 从末尾截断未知长度x字节的流?(。网)
我需要读取一个长度未知的流,不包括最后 20 个字节(哈希数据)。设置大致是:
源流(带有最后 20 个字节的 SHA1 哈希)-> SHA1 哈希流(即时计算并在流结束时与嵌入的流哈希进行比较)-> AES 解密流-> 处理数据...
我无法在处理之前缓冲整个源流,因为它可能有很多 GB,这一切都需要即时发生。源流不可搜索。目前,SHA1 流正在将最后 20 个字节读入它的缓冲区,这会破坏一切,我不知道有任何方法可以控制这种行为。
我正在考虑在 Source 和 SHA1 流之间插入一个包装流,实现一个滚动缓冲区(?),它以 4096 字节块将源流呈现给 AES 包装器,然后在 20 字节之前“伪造”流的结尾在最后一次阅读。然后将通过属性公开 20 字节哈希。
这将是最好的解决方案,我将如何实施它?
粗略的代码流程如下(来自内存,可能无法编译):
编辑:流格式如下:
c# - “指定的初始化向量 (IV) 与此算法的块大小不匹配”使用 CryptoStream
我在使用 CryptoStream 进行文件加密时遇到了麻烦。
代码:
尝试“managed.BlockSize = 16;” 或“= 128;” 似乎不起作用,那么我该如何解决我的错误?
java - 如何将此 C# 加密函数转换为 Java?
我需要将以下 C# 代码翻译成 Java,但是,我找不到任何与 C# 的 Rfc2898DerivedBytes 和 Rijndael 等效的 Java。
[更新]
我需要使用这个函数来加密新创建的用户的密码,并且加密的密码也应该被包括 C# 在内的其他调用者正确解密。
我按照评论和答案中列出的文档,并尝试在下面写简单的示例以快速验证。
}
但是,密文的长度是48,但实际上在C#中,看起来是这样的格式
WHUNV5xrsfETEiCwcT0M731+Ak1jibsWEodJSaBraP1cmmkS1TpGWqwt/6p/a7oy8Yq30ImZPbFF+Y0JNLa3Eu2UGuazZtuhEepUIIdaDEtA2FO0JYIj2A==
共 120 个字符。
代码有问题吗?
c# - 无法创建要从中读取的 CryptoStream - System.NotSupportedException
解密文件的代码非常简单(三重DES加密):
它不起作用。'cs' 无效,无法从中读取。创建 CryptoStream 时有一些例外:
为什么我无法创建加密流并从中读取以及如何解决此问题?
[添加]
感谢您的回复,现在对我来说更清楚了。但是 - 仍然无法从“cs”中读取。
加密:
在其他地方定义了 iv 和 key。并且,解密 - 整个方法:
如您所见,与加密代码中的密钥和 iv 相同。但是仍然无法从“cs”流中读取 - 抛出异常。你怎么看 - 这里有什么问题?
这是我的钥匙,我用过:
c# - AES 加密“值不能为空”
我最近一直在尝试“CryptoStream”,并遇到了通过加密和解密文本的想法。Aes 类。'命名空间:System.Security.Cryptography'
在使用两个输入参数创建成功加密文本的函数后:文本、密码
解密文本的问题发生了。
我解密文本的尝试如下:
然而; 看来我将内存流转换为字符串然后返回的方式无效,因为我收到以下错误:错误:值不能为空\n参数名称:inputBuffer
错误发生在使用 (MemoryStream MS = new MemoryStream(Convert.FromBase64String(EncryptedTxt)))
如何将 MemoryStream 转换为字符串并返回?
提前致谢 :-)
c# - 此代码有什么替代方法可以知道字节数吗?
好的,所以我有这个用于解密文件的代码
现在我遇到了问题,我无法确定字节长度!我试过了
但它说流不支持寻找(类似的东西)我也尝试通过计算文件的字节数
但它说该文件正在使用中...由于 FileStream fsCrypt确实在使用中
与此同时,我cs.Length
用一些大整数替换了它以使其工作..比如 1000000..不会导致任何异常的最大整数..它确实以这种方式工作。
c# - 加密流使用不当
我正在尝试在我的客户端 - 服务器应用程序上实现加密,但由于我实现了它,我无法在应用程序之间进行通信。
服务器:
客户:
我的实施有什么问题吗?特别是在StreamWriter
和StreamReader
零件上。还是其他地方的问题?
c# - 加密数据 (AES) 的大小错误
我需要执行字节[]的加密数组。我使用了 Microsoft 上提供的示例。不幸的是,加密数据被截断为 16 的倍数。如果在数据示例中我将添加 8 倍字节 0,则数据将被正确加密。填充已设置,但我没有看到任何可以更改的内容。如何解决这个问题,数据不被截断。