本文介紹使用XOR加密算法對數(shù)據(jù)進(jìn)行加密, 這是一種很簡單的算法,使用了盡量簡單的VB編程方法,通俗易懂。我們可以采用更安全的算法如DES算法,IDEA算法等。各位如有任何見解,請不吝賜教。
在窗體中添加一RichTextBox,設(shè)置其Name屬性為SourceFile,Multiline屬性為True,ScrollBars屬性為3-both。添加一MainMenu,設(shè)置一菜單項“文件”,其下有“打開”,“保存”,“加密”,“解密”,“算子”等子菜單項。 以下是大致的程序界面:
Public Class Form1 Inherits System.Windows.Forms.Form Dim strNum As String Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load strNum = "password" End Sub Private Sub Form1_Resize(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Resize SourceFile.Width = Form1.DefInstance.Width SourceFile.Height = Form1.DefInstance.Height End Sub '解密過程,對xor算法而言,解密和加密過程是完全一樣的 Private Function XorOut(ByRef strNum As String, ByRef strText As String) As String Dim i As Integer Dim XorValue1 As Short Dim XorValue2 As Short Dim strResult As String For i = 1 To Len(strText) XorValue1 = Asc(Mid(strText, i, 1)) XorValue2 = Asc(Mid(strNum, (i Mod Len(strNum)) + 1, 1)) strResult = strResult & Chr(XorValue1 Xor XorValue2) Next XorOut = strResult End Function
Private Sub MenuDeEncrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuDeEncrypt.Click SourceFile.Text = XorOut(strNum, (SourceFile.Text)) End Sub
Private Sub MenuEncrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuEncrypt.Click SourceFile.Text = XorOut(strNum, (SourceFile.Text)) End Sub
Private Sub MenuOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuOpen.Click Dim openFile1 As New OpenFileDialog ' Determine whether the user selected a file from the OpenFileDialog. If (openFile1.ShowDialog() = DialogResult.OK) _ And (openFile1.FileName.Length > 0) Then
' Load the contents of the file into the RichTextBox. SourceFile.LoadFile(openFile1.FileName, _ RichTextBoxStreamType.PlainText) End If End Sub
Private Sub MenuSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuSave.Click ' Create a SaveFileDialog to request a path and file name to save to. Dim saveFile1 As New SaveFileDialog
' Initialize the SaveFileDialog to specify the RTF extension for the file. 'saveFile1.DefaultExt = "*.rtf" 'saveFile1.Filter = "RTF Files|*.rtf"
' Determine if the user selected a file name from the saveFileDialog. If (saveFile1.ShowDialog() = DialogResult.OK) _ And (saveFile1.FileName.Length) > 0 Then
' Save the contents of the RichTextBox into the file. SourceFile.SaveFile(saveFile1.FileName, _ RichTextBoxStreamType.PlainText) End If End Sub
Private Sub MenuNum_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuNum.Click strNum = InputBox("請輸入加密算子", "設(shè)置加密算子") End Sub End
|