下面的代码示例使用 Rijndael 类加密数据,然后将其解密。
- Imports System.Security.Cryptography
- Imports System.Text
- Imports System.IO
-
- Module RijndaelSample
-
- Sub Main()
- Try
-
-
- Dim RijndaelAlg As Rijndael = Rijndael.Create
-
-
- Dim sData As String = "Here is some data to encrypt."
- Dim FileName As String = "CText.txt"
-
-
- EncryptTextToFile(sData, FileName, RijndaelAlg.Key, RijndaelAlg.IV)
-
-
- Dim Final As String = DecryptTextFromFile(FileName, RijndaelAlg.Key, RijndaelAlg.IV)
-
-
- Console.WriteLine(Final)
- Catch e As Exception
- Console.WriteLine(e.Message)
- End Try
-
- Console.ReadLine()
-
- End Sub
-
-
- Sub EncryptTextToFile(ByVal Data As String, ByVal FileName As String, ByVal Key() As Byte, ByVal IV() As Byte)
- Try
-
- Dim fStream As FileStream = File.Open(FileName, FileMode.OpenOrCreate)
-
-
- Dim RijndaelAlg As Rijndael = Rijndael.Create
-
-
-
- Dim cStream As New CryptoStream(fStream, _
- RijndaelAlg.CreateEncryptor(Key, IV), _
- CryptoStreamMode.Write)
-
-
- Dim sWriter As New StreamWriter(cStream)
-
- Try
-
-
-
- sWriter.WriteLine(Data)
- Catch e As Exception
-
- Console.WriteLine("An error occurred: {0}", e.Message)
-
- Finally
-
-
-
- sWriter.Close()
- cStream.Close()
- fStream.Close()
-
- End Try
- Catch e As CryptographicException
- Console.WriteLine("A Cryptographic error occurred: {0}", e.Message)
- Catch e As UnauthorizedAccessException
- Console.WriteLine("A file error occurred: {0}", e.Message)
- End Try
- End Sub
-
-
- Function DecryptTextFromFile(ByVal FileName As String, ByVal Key() As Byte, ByVal IV() As Byte) As String
- Try
-
- Dim fStream As FileStream = File.Open(FileName, FileMode.OpenOrCreate)
-
-
- Dim RijndaelAlg As Rijndael = Rijndael.Create
-
-
-
- Dim cStream As New CryptoStream(fStream, _
- RijndaelAlg.CreateDecryptor(Key, IV), _
- CryptoStreamMode.Read)
-
-
- Dim sReader As New StreamReader(cStream)
-
-
-
- Dim val As String = Nothing
-
- Try
-
- val = sReader.ReadLine()
-
- Catch e As Exception
- Console.WriteLine("An Cerror occurred: {0}", e.Message)
- Finally
-
-
- sReader.Close()
- cStream.Close()
- fStream.Close()
-
-
- End Try
-
-
- Return val
-
- Catch e As CryptographicException
- Console.WriteLine("A Cryptographic error occurred: {0}", e.Message)
- Return Nothing
- Catch e As UnauthorizedAccessException
- Console.WriteLine("A file error occurred: {0}", e.Message)
- Return Nothing
- End Try
- End Function
- End Module
|