问题标签 [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.

0 投票
0 回答
298 浏览

c# - 如果我停止 CryptoStream Read 我得到 Bad Data 异常

我遇到了 CryptoStream 解密器的问题。我正在解密另一个线程上的文件。所以这里是问题:

当我让文件解密到最后时,一切都很好,但是当我停止线程,使用全局变量并退出 while 循环时

我在cryptostream Dispose().

我做错了什么??

这是我的代码:

0 投票
1 回答
1673 浏览

c# - C#cryptoStream.Read 错误

问候 C# 程序员!我尝试使用 C# 构建一个 DLL,以通过 VBS 脚本加密和解密 VBS 文件。

我的代码是这样的:

因此,如果我尝试使用 Encrypt 和 Decrypt 对字符串进行 econde 和解码,它工作正常。

但是,如果我尝试使用 EncryptBytes 和 DecryptBytes 加密文件并解密加密文件,则此代码行出现错误:

有任何想法吗?谢谢

调用 dll 的 Ps VBS 代码是这样的:

0 投票
1 回答
1406 浏览

c# - 子类 StreamReader 以创建解密文件流 Reader

我正在尝试通过子类化 StreamReader 创建一个解密的文件流读取器(DFSR)类,这样我就可以将带有加密信息的文件名传递给它的(DFSR)构造函数,并返回我可以调用 StreamReader 的 ReadLine 方法的 streamReader。

我知道如何做如下,但我不知道如何将它重构为一个以 StreamReader 作为父类的类。

0 投票
0 回答
736 浏览

c# - CryptoStream 无法正确解密

我在服务器应用程序和客户端之间有一个有效的 TCP 连接,它使用 AES 加密进行通信。它适用于具有 RijndaelManaged En/Decrypter 的 CryptoStream。好吧,现在,如果我想发送某事。像这样:“F4FBF-B60FC-6F3ED-1E5A9”我得到它作为输出:“Ü]Þí£ôÉò×â×$¼ÚD-1E5A9”所以......这里可能出了什么问题?为什么仍然加密到“D-1E5A9”?

那么这里有一些代码:服务器:

客户:

有时,我将开始使用“使用”来摆脱冲洗和处置,但现在,我只是试图让它工作,经过一整天的 RSA 加密工作以使其工作,现在我遇到了这个问题. 如果你想知道编码'bla'是什么......只要想象你想要的任何东西,它都不会产生影响。

0 投票
2 回答
2681 浏览

c# - Base64 - 带有 StreamWriter 的 CryptoStream 与 Convert.ToBase64String()

根据 Alexei 的反馈,对问题进行了简化:

如何在不使用 Convert.ToBase64String() 的情况下使用缓冲流方法将 CryptoStream(使用 ToBase64Transform)的内容转换为 StreamWriter(Unicode 编码)?

注意:调用 Convert.ToBase64String() 会抛出 OutOfMemoryException,因此需要使用缓冲/流方法进行转换。

0 投票
1 回答
1673 浏览

c# - 将 AESManaged 与字节数组一起使用

我正在尝试实现内存中的 AESManaged 加密/解密。这里的代码基于此:

加密/解密大文件 (.NET)

加密部分似乎起作用了,也就是说,没有例外。但是解密部分会引发“索引超出数组范围”错误。

在早期的代码中,转换是这样初始化的:

似乎有问题的行可能是: using (CryptoStream cryptoStream = new CryptoStream(destination, transform, CryptoStreamMode.Write))

0 投票
1 回答
327 浏览

c# - 如何让 .NET CryptoStream 读取最后一个块

我在两端的 TcpClient 的 NetWorkStream 周围设置了一个带有 CryptoStream 的客户端/服务器。当我直接从 NetworkStream 读取数据时,双向通信效果很好,但使用 CryptoStream 我无法读取单个可用数据块。我正在关闭 CryptoStream 以导致从服务器调用 FlushLastBlock 并且确实在客户端显示了唯一的 16 字节块(AES 加密)。那么,当有完整的数据块可用时,为什么 CryptoStream.Read() 会阻塞等待数据呢?

PS我已经验证发送一个额外的块允许读者阅读第一个块。这只是一个错误还是设计使然?

0 投票
3 回答
8106 浏览

sql-server - C# 从 SQL Server EncryptByPassPhrase 解密字节?

C# 中复制 T-SQL DecryptByPassPhrase 之后,我无法使用 MSSQL 进行简单加密以在 C# 中解密。某些列中的加密值是必要的,因为该表会定期导出到 Excel 和 Access 中,因此简单的加密足以“阻止”值,而无需让开发人员参与(重新)执行视图等。

在 SQL Server 2012 中:

在 C# 中:

工作的 C# 代码应该是什么样的?

谢谢。

0 投票
0 回答
599 浏览

c# - 1 个 NetworkStream 上的 2 个 CryptoStreams?

这个概念看起来很简单:创建两个独立的应用程序,从客户端向服务器发送加密文本,然后从服务器向客户端发送回复——我假设我可以简单地在两者之间建立一个 TcpClient 连接,获取一个 NetworkStream,并在该 NetworkStream 上使用两个 CryptoStream(一个用于读取,一个用于写入)。但是,在我下面的示例中(主要基于 MSDN 示例),文本可以被加密,发送到服务器,解密并显示得很好,但是当服务器尝试回复时,它会抛出“无法将数据写入交通连接……”。当 StreamWriter 关闭时,底层流可能正在关闭?顺便说一句,当通过 NetworkStream 本身发送未加密的文本时,这个概念非常有效,因为 NetworkStream 本身就是双向的。

编辑:似乎关闭 CryptoStream 会导致其他所有内容也被关闭。如果我在客户端发送消息后在服务器上手动调用 sendReply() ,服务器将成功回复(只要客户端上没有关闭 NetworkStream )。然后服务器将抛出“无法从传输连接读取数据:阻塞操作被对 WSACancelBlockingCall 的调用中断。” 在 SReader.Readline。多个 CryptoStreams 似乎可以工作,所以真正的问题可能是服务器不知道何时停止读取。我也不确定如何补救。在消息中添加“\r\n”并使用 ReadLine() 似乎没有帮助。

服务器:

客户:

0 投票
1 回答
688 浏览

c# - 为什么解密不返回预期值?

当使用 c# rijndael 解密以前加密并保存在 sql server ce 中的字符串时,我从解密中什么也得不到。我可以从调试和检查数据库中看出,解密的字符串似乎按预期保存,对于不同的输入字符串有不同的废话集,所以我认为问题出在解密代码中。我还确认 cipherText 输入参数在从数据库中检索并重新制作成字节数组后获得了正确的字节数。我使用了以下示例:http: //msdn.microsoft.com/en-us/library/system.security.cryptography.rijndael%28v=vs.110%29.aspx进行了一些修改。

plainText 获得 "" 的值,我希望它是解密后的单词。

最后,在

纯文本变为:“\0\0\0\0\0\0\0\0”

我在加密和解密阶段都尝试了各种填充选项,并且可以看到这样做有效果,但并不能解决问题。如果不设置填充,0 字节首先会被加密,它应该是 16 字节。我还尝试了调用flush和flushfinalblock的不同方法。我将密钥/iv 存储在纯文本文件中(我知道这可能不是安全的最佳实践,我现在的目标只是了解有关此主题的更多信息)。

请帮我找出我在这里做错了什么。