| 网站首页 | VB.Net实例分析 | .Net技术文摘 | 下载中心 | VB.Net书籍笔记 | .Net源码 | VBS脚本与组件调用 | Windows2008技术文摘 | 给我们留言 | 
最新公告:

  没有公告

您现在的位置: 乐博网 >> VB.Net实例分析 >> 加密压缩编程 >> 实例分析正文
最新推荐 更多内容
Rijndael类的实例
Rijndael类的实例
作者:佚名    来源:乐博网收集     更新时间:2007-11-3

下面的代码示例使用 Rijndael 类加密数据,然后将其解密。

  1. Imports System.Security.Cryptography   
  2. Imports System.Text   
  3. Imports System.IO   
  4.   
  5. Module RijndaelSample   
  6.   
  7.     Sub Main()   
  8.         Try  
  9.             ' Create a new Rijndael object to generate a key   
  10.             ' and initialization vector (IV).   
  11.             Dim RijndaelAlg As Rijndael = Rijndael.Create   
  12.   
  13.             ' Create a string to encrypt.   
  14.             Dim sData As String = "Here is some data to encrypt."  
  15.             Dim FileName As String = "CText.txt"  
  16.   
  17.             ' Encrypt text to a file using the file name, key, and IV.   
  18.             EncryptTextToFile(sData, FileName, RijndaelAlg.Key, RijndaelAlg.IV)   
  19.   
  20.             ' Decrypt the text from a file using the file name, key, and IV.   
  21.             Dim Final As String = DecryptTextFromFile(FileName, RijndaelAlg.Key, RijndaelAlg.IV)   
  22.   
  23.             ' Display the decrypted string to the console.   
  24.             Console.WriteLine(Final)   
  25.         Catch e As Exception   
  26.             Console.WriteLine(e.Message)   
  27.         End Try  
  28.   
  29.         Console.ReadLine()   
  30.   
  31.     End Sub  
  32.   
  33.   
  34.     Sub EncryptTextToFile(ByVal Data As StringByVal FileName As StringByVal Key() As ByteByVal IV() As Byte)   
  35.         Try  
  36.             ' Create or open the specified file.   
  37.             Dim fStream As FileStream = File.Open(FileName, FileMode.OpenOrCreate)   
  38.   
  39.             ' Create a new Rijndael object.   
  40.             Dim RijndaelAlg As Rijndael = Rijndael.Create   
  41.   
  42.             ' Create a CryptoStream using the FileStream    
  43.             ' and the passed key and initialization vector (IV).   
  44.             Dim cStream As New CryptoStream(fStream, _   
  45.                                            RijndaelAlg.CreateEncryptor(Key, IV), _   
  46.                                            CryptoStreamMode.Write)   
  47.   
  48.             ' Create a StreamWriter using the CryptoStream.   
  49.             Dim sWriter As New StreamWriter(cStream)   
  50.   
  51.             Try  
  52.   
  53.                 ' Write the data to the stream    
  54.                 ' to encrypt it.   
  55.                 sWriter.WriteLine(Data)   
  56.             Catch e As Exception   
  57.   
  58.                 Console.WriteLine("An error occurred: {0}", e.Message)   
  59.   
  60.             Finally  
  61.   
  62.                 ' Close the streams and   
  63.                 ' close the file.   
  64.                 sWriter.Close()   
  65.                 cStream.Close()   
  66.                 fStream.Close()   
  67.   
  68.             End Try  
  69.         Catch e As CryptographicException   
  70.             Console.WriteLine("A Cryptographic error occurred: {0}", e.Message)   
  71.         Catch e As UnauthorizedAccessException   
  72.             Console.WriteLine("A file error occurred: {0}", e.Message)   
  73.         End Try  
  74.     End Sub  
  75.   
  76.   
  77.     Function DecryptTextFromFile(ByVal FileName As StringByVal Key() As ByteByVal IV() As ByteAs String  
  78.         Try  
  79.             ' Create or open the specified file.    
  80.             Dim fStream As FileStream = File.Open(FileName, FileMode.OpenOrCreate)   
  81.   
  82.             ' Create a new Rijndael object.   
  83.             Dim RijndaelAlg As Rijndael = Rijndael.Create   
  84.   
  85.             ' Create a CryptoStream using the FileStream    
  86.             ' and the passed key and initialization vector (IV).   
  87.             Dim cStream As New CryptoStream(fStream, _   
  88.                                             RijndaelAlg.CreateDecryptor(Key, IV), _   
  89.                                             CryptoStreamMode.Read)   
  90.   
  91.             ' Create a StreamReader using the CryptoStream.   
  92.             Dim sReader As New StreamReader(cStream)   
  93.   
  94.             ' Read the data from the stream    
  95.             ' to decrypt it.   
  96.             Dim val As String = Nothing  
  97.   
  98.             Try  
  99.   
  100.                 val = sReader.ReadLine()   
  101.   
  102.             Catch e As Exception   
  103.                 Console.WriteLine("An Cerror occurred: {0}", e.Message)   
  104.             Finally  
  105.                 ' Close the streams and   
  106.                 ' close the file.   
  107.                 sReader.Close()   
  108.                 cStream.Close()   
  109.                 fStream.Close()   
  110.   
  111.   
  112.             End Try  
  113.   
  114.             ' Return the string.    
  115.             Return val   
  116.   
  117.         Catch e As CryptographicException   
  118.             Console.WriteLine("A Cryptographic error occurred: {0}", e.Message)   
  119.             Return Nothing  
  120.         Catch e As UnauthorizedAccessException   
  121.             Console.WriteLine("A file error occurred: {0}", e.Message)   
  122.             Return Nothing  
  123.         End Try  
  124.     End Function  
  125. End Module  
  • 上一篇:

  • 下一篇:
  • 【字体: 】【打印此文】【关闭窗口
      相关文章:(只显示最新16条)
    VB.Net获取随机密码的实例
    VB.Net用Salt哈希数据的实例
    用DPAPI加密和解密数据的实例
    储存加密的数据库连接字符串到注册表的实例
    Salt加密数据的.Net实例
    Rijndael加密解密的实例
    AES加密的实例
    Rijndael加密的实例
    SHA256 Hash加密的实例
    VB.Net对XML元素进行加密解密的实例
    VB.Net文件CRC32算法的实例
    VB.Net文件SHA1算法的实例
    Blowfish加密算法的实例
    TripleDES加解密的实例
    VB.Net实现des加密算法的实例
    VB.Net实现RSA加密的实例

    | 设为首页 | 加入收藏 | 联系站长 | | 友情链接 | 版权申明 |
    乐博网欢迎各种媒体转载我们的原创作品[转载请注明出处];我们鼓励更多VB.Net开发者一起加入研究与探讨;如发现文章访问错误、内容错误或版权疑问、内容有违相关法律(如涉及政治、色情、反动或散布虚假有害信息)等情况,请及时向我们举报,我们将及时纠正!
    联系邮箱:Shiny#vip.qq.com (#替换为@) QQ交流群: 40797788 [闽ICP备05014267号]