Tag: 加密

为什么File.copy有效,但File.OpenRead会提示拒绝访问?

我想复制另一个进程正在使用的加密文件。 这有效: System.IO.File.Copy(“path1”, “path2″,true); 但是下面的代码不起作用。 提示“文件访问被拒绝”错误: using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read))//access denied open file { using (Stream copyFileStream = new StreamDecryption(new FileStream(copyTo, FileMode.Create))) { } } 如果另一个进程使用文件,我如何复制加密文件? 谢谢 更新 :我使用此代码并为我工作: using (var fileStream = new System.IO.FileStream(@”filepath”, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite)) { }

如何在C#中序列化对象并防止篡改?

我有一个C#类如下: public class TestObj { private int intval; private string stringval; private int[] intarray; private string[] stringarray; //… public properties not shown here } 我想将此类的实例序列化为字符串。 此外: 我将此字符串作为QueryString参数附加到URL。 所以我想尽一切努力确保字符串不会被轻易篡改。 另外,我希望序列化方法有效,因此字符串的大小是最小的。 我应该使用特定.NET Framework类/方法的任何建议吗?

非对称加密和解密

我们假设我使用此站点上的算法使用公钥 – 私钥加密和解密数据: CodeProject上C#.NET中的公钥RSA加密 现在,让我们说有人使用我的公钥使用另一种算法加密他的数据并将其发送给我。 使用不同的算法(如网站上的算法),我能够使用我的私钥解密信息吗? 或者这是不可能的,因为算法不同? 我的观点是,假设使用的密钥是正确的,如果使用不同的加密算法,最终结果是否总是相同的? 是否有一些标准的方法来加密信息,使其可以在不同的机器上解密,也许是不同的编程语言?

使用BouncyCastle AesFastEngine加密C#AesCryptoServiceProvider加密数据

我需要使用标准C#AesCryptoServiceProvider解密数据,该数据在Java端使用Bouncy Castle AesFastEngine加密。 (使用Bounca Castle的c#实现解密数据没问题) 有没有办法做到这一点? 我没有找到在Bouncy Castle实施中使用的IV ……有没有? 任何帮助都会很好! 马库斯 编辑: 以下代码用于初始化AesFastEngine: BlockCipher coder = new AESFastEngine(); CFBBlockCipher cfbCipher = new CFBBlockCipher(coder, 8); StreamCipher streamCipher = new StreamBlockCipher(cfbCipher); streamCipher.Init(true, keyParameter); streamCipher.ProcessBytes(data, 0, data.Length, encodedMessageBytes, 0); 编辑: 您好Grec,感谢您的回答,但它仍然无效……我有一个示例解决方案可以在这里下载。 如果你单击两个按钮,你会得到一个不同的加密数组…… ??? 解密使用充气城堡生成的arrays导致一个例外,说加密数据的长度无效…… 这是我为解密编写的代码: AesManagedAlg = new AesManaged(); AesManagedAlg.Mode = CipherMode.CBC; AesManagedAlg.FeedbackSize = 8; AesManagedAlg.Key = key; […]

TripleDES IV适用于C#?

所以,当我说出类似的话: TripleDES tripledes = TripleDES.Create(); Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password, plain); tripledes.Key = pdb.GetBytes(16); tripledes.IV = pdb.GetBytes(16); 我收到一个错误。 错误曾经在密钥上,但它已被修复(我认为 – 除非你发现错误)。 但是,当我设置IV时发生错误: tripledes.IV = pdb.GetBytes(16); 它说它不是一个有效的初始化向量。 我如何解决它?

安全存储密码的最佳方法

在计算机上保存密码以便无法访问密码的最佳方法是什么? 我想将它们存储在加密的注册表中。 我希望您能够重置密码,但这不适用于服务器。 这是为了将它们存储在计算机上以便记住它们并自动登录。 重要编辑:我需要能够从程序中检索纯文本密码,而不是其他任何地方。

如何使用C#validation文件是受密码保护的ZIP文件

给定文件的路径,如何validation该文件是受密码保护的zip文件? 即,我该如何实现这个function? bool IsPasswordProtectedZipFile(string pathToFile) 我不需要解压缩文件 – 我只需要validation它是ZIP并且已经受到一些密码的保护。 谢谢

为我的AES方法创建一个字节数组的字符数是多少?

我在这里使用AES方法: http : //msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspx 我想要一个字符串值,我将转换为字节数组并将其传递给AES加密方法。 字符串应该有多少个字符来生成方法所需的正确字节数组大小? static byte[] encryptStringToBytes_AES(string plainText, byte[] Key, byte[] IV) { // Check arguments. if (plainText == null || plainText.Length <= 0) throw new ArgumentNullException("plainText"); if (Key == null || Key.Length <= 0) throw new ArgumentNullException("Key"); if (IV == null || IV.Length <= 0) throw new ArgumentNullException("Key"); // Declare the stream […]

在源代码中存储加密密钥有多安全?

此加密类是否足够安全? 或者有人可以反汇编我的二进制文件来找到密钥和IV吗? 我正在使用它来删除许可证文件,因此它不容易被破坏是非常重要的。 internal static class Encryptor { // Actual values are put here in my source private static readonly byte[] Key = { 0, 0, 0, 0, 0, 0, 0, 0 }; private static readonly byte[] Iv = { 0, 0, 0, 0, 0, 0, 0, 0 }; internal static String Encrypt(string source) { […]

如何加密.zip文件?

是否可以加密Zip文件? 我知道加密用于使.txt文件不可读,直到用密钥解密。 虽然我想对.zip文件做同样的事情。 我有多个文件,我希望用户通过我正在创建的程序从互联网上下载,所以我想我会在.zip中压缩它们的文件然后加密Zip以增加安全性。 (我不希望用户在没有串行代码的情况下访问.zip中的文件) 我打算将“序列密钥”保存在一个程序可以获得的数据库中。 我是以错误的方式解决这个问题的?