在Visual Basic .NET中使用RSA加密文件

时间:2009-10-16 18:35:58

标签: vb.net encryption rsa

我刚刚开始使用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就足以让我弄清楚这一点了。我假设我可以在我的代码中对公钥进行硬编码(它不会改变)。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

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

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

Chilkat's这样的VB.NET S / MIME库可以处理这个任务。