【问题标题】:Encrypting a file with RSA in Visual Basic .NET在 Visual Basic .NET 中使用 RSA 加密文件
【发布时间】:2009-10-16 18:35:58
【问题描述】:

我刚开始使用 Visual Basic .NET,目前遇到以下问题:如何使用非对称加密加密/解密文件?

基本上,我想弄清楚如何在 VB 中编写以下伪代码:

Function EncryptFile(path_to_file_to_encrypt, public_key)
  file = ReadFile(path_to_file_to_encrypt)
  encrypted_file = Encrypt(file, public_key)
  SaveToDisk(encrypted_file, "C:\Encrypted\encryptedfile.xxx")
End Function

Function DecryptFile(path_to_encrypted_file, private_key)
  encrypted_file = ReadFile(path_to_encrypted_file)
  file = Decrypt(file, private_key)
  SaveToDisk(file, "C:\Decrypted\file.xxx")
End Function

我正在加密/解密的文件是 Access 数据库文件(即二进制文件),如果这有什么不同的话。

我知道有用于存放私钥的容器,但看起来MSDN tutorial 足以让我弄清楚这一点。我假设我可以在我的代码中硬编码公钥(它不会改变)。

任何帮助将不胜感激!

【问题讨论】:

标签: vb.net encryption rsa


【解决方案1】:

通常,RSA“密钥加密密钥”用于加密对称算法的“内容加密密钥”。该内容加密密钥用于加密文件。

SSL、S/MIME 和 PGP 等协议可以使用这种方法(有时称为密钥传输)。与对称算法相比,非对称加密非常非常慢。

类似Chilkat's VB.NET 的 S/MIME 库之类的东西可以处理这个任务。

【讨论】:

  • 好的,这可能会做到。具体来说,我想做的是用公钥加密一个数据库文件,然后通过电子邮件将其发送给拥有私钥的人。通过密钥传输,我可以对数据库文件进行对称加密,对“内容加密密钥”进行非对称加密,并通过电子邮件发送加密的对称密钥和加密的数据库。对?假设对称密钥很强大,它会和非对称地一样安全吗?
  • 是的,这正是正确的方法;当然,S/MIME 就像您概述的那样。作为奖励,请考虑电子邮件的收件人可能已经在运行支持 S/MIME 的邮件客户端(如 Outlook 或 Thunderbird)。他们需要做的就是在他们的客户端中安装一个密钥对(加载一个 p12 或 pfx 文件)。最后,这里的安全性没有妥协。这是由密码学家设计、研究、审查和实施的协议。
猜你喜欢
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
  • 2015-06-13
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多