VB.NET加密文件实现技巧分享
创始人
2024-06-21 05:31:30
0

VB.NET编程环境可以帮助开发人员打造一个性能稳定,安全可靠的编程平台,帮助开发人员大大提高编程效率。本文介绍使用XOR加密算法对数据进行加密, 这是一种很简单的算法,使用了尽量简单的VB编程方法,通俗易懂。我们可以采用更安全的算法如DES算法,IDEA算法等。各位如有任何见解,请不吝赐教。

在窗体中添加一RichTextBox,设置其Name属性为SourceFile,Multiline属性为True,ScrollBars属性为3-both。添加一MainMenu,设置一菜单项“文件”,其下有“打开”,“保存”,“加密”,“解密”,“算子”等子菜单项。

以下是大致的VB.NET加密文件的程序界面:

  1. Public Class Form1   
  2. Inherits System.Windows.Forms.Form   
  3. Dim strNum As String   
  4. Private Sub Form1_Load(ByVal eventSender
     As System.Object, ByVal eventArgs 
    As System.EventArgs) Handles MyBase.Load   
  5. strNum = "password"   
  6. End Sub   
  7. Private Sub Form1_Resize(ByVal event
    Sender As System.Object, ByVal eventArgs
     As System.EventArgs) Handles MyBase.Resize   
  8. SourceFile.Width = Form1.DefInstance.Width   
  9. SourceFile.Height = Form1.DefInstance.Height   
  10. End Sub  

解密过程,对xor算法而言,解密和VB.NET加密文件的过程是完全一样的

  1. Private Function XorOut(ByRef 
    strNum As String, ByRef strText 
    As String) As String   
  2. Dim i As Integer   
  3. Dim XorValue1 As Short   
  4. Dim XorValue2 As Short   
  5. Dim strResult As String   
  6. For i = 1 To Len(strText)   
  7. XorValue1 = Asc(Mid(strText, i, 1))   
  8. XorValue2 = Asc(Mid(strNum, 
    (i Mod Len(strNum)) + 1, 1))   
  9. strResultstrResult = strResult & 
    Chr(XorValue1 Xor XorValue2)   
  10. Next   
  11. XorOut = strResult   
  12. End Function   
  13.  
  14. Private Sub MenuDeEncrypt_Click
    (ByVal sender As System.Object, 
    ByVal e As System.EventArgs) 
    Handles MenuDeEncrypt.Click   
  15. SourceFile.Text = XorOut(strNum, 
    (SourceFile.Text))   
  16. End Sub   
  17.  
  18. Private Sub MenuEncrypt_Click
    (ByVal sender As System.Object,
     ByVal e As System.EventArgs) 
    Handles MenuEncrypt.Click   
  19. SourceFile.Text = XorOut(strNum,
     (SourceFile.Text))   
  20. End Sub   
  21.  
  22. Private Sub MenuOpen_Click(ByVal 
    sender As System.Object, ByVal e
     As System.EventArgs) Handles 
    MenuOpen.Click   
  23. Dim openFile1 As New OpenFileDialog   
  24. ' Determine whether the user 
    selected a file from the OpenFileDialog.   
  25. If (openFile1.ShowDialog() = 
    DialogResult.OK) _   
  26. And (openFile1.FileName.Length > 0) Then   
  27.  
  28. ' Load the contents of the 
    file into the RichTextBox.   
  29. SourceFile.LoadFile(openFile1.FileName, _   
  30. RichTextBoxStreamType.PlainText)   
  31. End If   
  32. End Sub   
  33.  
  34. Private Sub MenuSave_Click(ByVal 
    sender As System.Object, ByVal e As
     System.EventArgs) Handles MenuSave.Click   
  35. ' Create a SaveFileDialog to request 
    a path and file name to save to.   
  36. Dim saveFile1 As New SaveFileDialog   
  37. ' Initialize the SaveFileDialog to 
    specify the RTF extension for the file.   
  38. 'saveFile1.DefaultExt = "*.rtf"   
  39. 'saveFile1.Filter = "RTF Files|*.rtf"   
  40. ' Determine if the user selected a 
    file name from the saveFileDialog.   
  41. If (saveFile1.ShowDialog() = DialogResult.OK) _   
  42. And (saveFile1.FileName.Length) > 0 Then   
  43. ' Save the contents of the 
    RichTextBox into the file.   
  44. SourceFile.SaveFile(saveFile1.FileName, _   
  45. RichTextBoxStreamType.PlainText)   
  46. End If   
  47. End Sub   
  48. Private Sub MenuNum_Click(ByVal 
    sender As System.Object, ByVal e 
    As System.EventArgs) Handles MenuNum.Click   
  49. strNum = InputBox("请输入加密算子",
     "设置加密算子")   
  50. End Sub   
  51. End Class  

VB.NET加密文件的相关编写过程就为大家介绍到这里。

【编辑推荐】

  1. VB.NET数组赋值怪异现象揭秘
  2. VB.NET自定义属性应用方式解析
  3. VB.NET异常迭代捕捉代码示例
  4. VB.NET共享成员变量创建技巧解析
  5. 范例解读VB.NET获取环境变量

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...