vb加密解密
『壹』 vb加解密
最簡單的設置一個公共變數Code和Key,前者用於存原密碼,後者用於存密鑰,自定義一個加密函數trans,用於轉換Code和Key並顯示在text2當中,解密時判定輸入的密鑰與Key是否符合,如果符合就把Code顯示出來。也就是說,這個加密函數只是用於加密轉換時,在解密的時候,可以不用它而直接讀取Code變數。代碼如下:
Dim Code As String, Key As String
Private Sub Command1_Click() '這是加密過程,加密的同時把密碼與密鑰存入變數Code和Key中
Label2.Caption = "加密後的密碼"
Code = Text1.Text
Key = Text3.Text
Text2.Text = trans(Key) & trans(Code)
End Sub
Private Sub Command2_Click() '這是解密過程
If Text3.Text <> Key Then
MsgBox "密鑰錯誤,請重新輸入"
Else
MsgBox "原密碼是:" & Code
End If
End Sub
Private Function trans(s As String) As String '這是加密函數
Dim ch As String
For i = 1 To Len(s)
If Mid(s, i, 1) Like "[A-Z]" Then
ch = ch & Chr(155 - Asc(Mid(s, i, 1)))
ElseIf Mid(s, i, 1) Like "[a-z]" Then
ch = ch & Chr(219 - Asc(Mid(s, i, 1)))
Else
ch = ch & Mid(s, i, 1)
End If
Next
trans = ch
End Function
Private Sub Form_Load() '這是所有用到的控制項
Label1.Caption = "密碼"
Label2.Caption = "加密後的密碼"
Label3.Caption = "密鑰"
Command1.Caption = "加密"
Command2.Caption = "解密"
End Sub
補充:我測試沒問題。Text2中是加密後的密文,解密時會先判定用戶在Text3中所輸入的密鑰是否與Key變數中保存的密鑰相同,如果相同的話才會顯示原來的密碼。如果出錯的話,請檢查一下這8個控制項,3個Text,3個Label,2個Command,你可以新建一個程序,然後在窗體上放上這8個控制項,都用默認屬性,然後把代碼復制過去,再運行一下試試。
『貳』 VB加密和解密數字
最簡單的就是移位法:就是將數字加上(或者減掉)某個定值;
比如:加密的時候加上5
那麼:
0 + 5 = 5 轉換成5
1 + 5 = 6 轉換成6
2 + 5 = 7 轉換成7
3 + 5 = 8 轉換成8
4 + 5 = 9 轉換成9
5 + 5 = 10 去掉十位 轉換成0
6 + 5 = 11 去掉十位 轉換成1
7 + 5 = 12 去掉十位 轉換成2
8 + 5 = 13 去掉十位 轉換成3
9 + 5 = 14 去掉十位 轉換成4
那麼解密的時候,就減掉5。
對於小於5的數字,要加上10以後再減5。
請看附件:
『叄』 用vb編一個加密解密的程序
在窗體上至少添加文件控制項:Drive控制項,Dir控制項,File控制項,以及Command控制項,每次用Xor加密解密後,在文件名加上前綴X-,另外保存
其他控制項你可以添加,用來裝飾,比如Label,用做提示
■這已經是詳細完整的程序了,窗體添加控制項你自己應該會吧?添加後,把下面內容復制到代碼窗口就可以了■
Private Sub Command1_Click()
Dim oldFile As String, newfile As String, theByte As Byte
If File1.FileName = "" Then MsgBox "請選擇需要加密或解密的文件!": Exit Sub
oldFile = Dir1.Path & "\" & File1.FileName
newfile = Dir1.Path & "\X-" & File1.FileName
Open oldFile For Binary As #1 Len = 1
Open newfile For Binary As #2
Do
Get #1, , theByte
theByte = 7 Xor theByte
Put #2, , theByte
Loop Until EOF(1)
Close #1
Close #2
MsgBox "加密或解密後的文件存放在「" & newfile & "」中!"
File1.Refresh
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub Form_Load()
File1.Pattern = "*.txt" '只列出txt文本文件,如果要列出全部文件,改成*.*
Command1.Caption = "加密解密"
End Sub
『肆』 用VB實現加密解密程序。
這里只給出按鈕事件的過程,加密演算法(函數)你自己想辦法:
設加密演算法函數名為encryptxt,解密演算法函數名為unencryptxt,不帶參數。
加密窗口「生成密文」按鈕事件:
Private sub 生成密文_Click()
Frame1.Caption = encryptxt (Text1.text)
End Sub
解密窗口「解密」按鈕事件:
Private Sub 解密_Click()
Frame2.Caption = unencryptxt(Rrame1.Caption)
End Sub
『伍』 VB加密解密
因為加密後有不可顯示字元,text1中顯示不出來就用?來代替。所以你解密的字元串不是你加密後的字元串。可以設個全局變數測試一下
『陸』 VB 加密與解密的程序代碼
加密:
PrivateFunction JiaMi(ByVal varPass As String) As String '參數varPass是需要加密的文本內容
Dim varJiaMi As String * 20
Dim varTmp As Double
Dim strJiaMi As String
Dim I
For I = 1 To Len(varPass)
varTmp = AscW(Mid$(varPass, I, 1))
varJiaMi = Str$(((((varTmp * 1.5) / 5.6) * 2.7) * I))
strJiaMi = strJiaMi & varJiaMi
NextI
JiaMi = strJiaMi
EndFunction
解密函數:
PrivateFunction JieMi(ByVal varPass As String) As String '參數varPass是需要解密的密文內容
Dim varReturn As String * 20
Dim varConvert As Double
Dim varFinalPass As String
Dim varKey As Integer
Dim varPasslenth As Long
varPasslenth = Len(varPass)
For I = 1 To varPasslenth / 20
varReturn = Mid(varPass, (I - 1) * 20 + 1, 20)
varConvert = Val(Trim(varReturn))
varConvert = ((((varConvert / 1.5) * 5.6) / 2.7) / I)
varFinalPass = varFinalPass & ChrW(Val(varConvert))
NextI
JieMi = varFinalPass
EndFunction
(6)vb加密解密擴展閱讀:
注意事項
編寫加密程序,將用戶輸入的一個英文句子加密為加密字元串,然後輸出加密字元串。假設句子長度不超過100個字元。
根據給定的句子加密函數原型SentenceEncoding,編寫函數SentenceEncoding調用給定的字元加密函數CharEncoding完成句子加密。
然後,編寫主程序提示用戶輸入英文句子,然後調用函數SentenceEncoding對句子加密,最後輸出加密後的句子。
字元加密規則為大寫字母和小寫字母均加密為其補碼, 我們定義ASCII碼值相加為』A』+』Z』即155的兩個大寫字母互為補碼,ASCII碼值相加為』a』+』z』即219的兩個小寫字母互為補碼。
空格用@代替,句號以#代替,其它字元用句點代替。
函數原型:
void SentenceEncoding(char *soure,char *code);
功能:對待加密字元串source加密後保存加密字元串到code.
參數:char *soure,指向待加密句子的字元串指針;
char *code 指向加密字元串的字元串指針;
字元加密函數代碼。
『柒』 用VB寫個簡單加密/解密程序
'圖上的控制項,你就照著擺上去,然後再把以下代碼拷進去,就OK了
Dim lg As Integer
'加密
Private Sub Command1_Click()
Text2 = ""
Dim a(), b() As String
lg = Len(Text1)
ReDim a(lg), b(lg)
For i = 1 To lg
a(i) = Mid(Text1, i, 1)
b(i) = AscW(a(i)) Xor 4
Text2 = Text2 & ChrW(b(i))
Next
End Sub
'解密
Private Sub Command2_Click()
Text3 = ""
Dim a(), b() As String
lg = Len(Text2)
ReDim a(lg), b(lg)
For i = 1 To lg
a(i) = Mid(Text2, i, 1)
b(i) = AscW(a(i)) Xor 4
Text3 = Text3 & ChrW(b(i))
Next
End Sub
『捌』 使用VB做出加密,密鑰和解密
下面代碼稍加修改就成。
Private Sub Command1_Click()
Dim a As String
Dim b As String
a = Text3
For i = 1 To Len(a)
b = b & JiaMi(Mid(a, i, 1))
Next i
Text2 = b
a = Text2
b = ""
For i = 1 To Len(a)
b = b & JiaMi(Mid(a, i, 1))
Next i
Text1 = b
End Sub
Private Function JiaMi(a As String) As String
Dim IntAsc As Integer
IntAsc = Asc(a)
If IntAsc Mod 2 Then
IntAsc = IntAsc + 47
If IntAsc > 126 Then IntAsc = IntAsc - 47
Else
IntAsc = IntAsc - 47
If IntAsc < 33 Then IntAsc = IntAsc + 47
End If
JiaMi = Chr(IntAsc)
End Function
『玖』 VB文本加密解密
剛好以前寫過一篇文章,提取了一部分
對敏感的數據進行加密是必要的,如用戶的密碼的加密。在要對數據進行加密前得確定要用何種加密方式,加密分類有很多種,從可逆角度可分為可逆和不可逆,從加密演算法可分為秘密密鑰演算法、公開密鑰演算法(用於加密、數據簽名和密鑰管理)以及單向散列函數等。md5加密是不可逆的,md5加密的具體實現又分為許多種。
加密為什麼要採用不可逆?舉個例子,當你輸入的密碼進行加密的密文被截取,那他也要把密文解密成原文,這時由於不可逆,那他要破解密碼的難度就提高,除非他可以越過加密那一步直接提供密文,這樣就達到安全的目的。每當我們忘記密碼進行找回密碼,大多數網站要求我們輸入新的密碼而不是直接告訴我們原來的密碼,這是由於不可逆造成的,但這又不是壞處,為什麼這么說?如果在找回密碼時能夠知道原來的密碼,那麼卧底就不用修改密碼來監控所有人,而所有人又不知情。但並不是所有網站都採用不可逆的演算法,筆者在某網站注冊過用戶,有一段沒登錄過,那網站就會給筆者一份提醒郵件,而這提醒郵件又顯示著筆者的密碼,這很可能是這個網站採用的不是不可逆的演算法。
今天為一個網友實現了一個簡易的自定義加密方式,使用的是Visual Basic 6.0。關鍵代碼如下:
Dim decode As String, encode As String, oldString As String, newString As String
Dim i As Integer
decode = "1234567890" '加密原文對照字元,不應該出錯相同的字元
encode = "eoSDriKjsd" '加密成密文的對照字元,字元個數不能少於decode,否則極易造成出錯
oldString = "87232" '待加密的字元串,所有字元都必需能夠在decode里找到對應位置
newString = "" '存放加密後的字元串
For i = 1 To Len(oldString)
newString = newString + Mid$(encode, Instr(decode, Mid$(oldString, i, 1)), 1)
Next i
Print "原文:"; oldString
Print "密文:"; newString
decode和encode的值可以根據需要設置,oldString可以由文框輸入,如果encode里的字元倆倆不相同,那麼只需調換decode和encode的值,就可以實現解密,否則加密後的密文為不可逆。
當然,在實際的應用種應增加加密的演算法復雜度,讓密文不至於被人輕而易舉破解。更多的加密知識請參考相關文檔。
希望回答對你有幫助
『拾』 使用VB作出加密,解密並顯示密鑰
'這是我以前回答別人提問時寫的,添加三個文本框,一個按鈕。text3文本框中輸入要加密的
'文本,在text2中是加密的文本,在text1中是對加密的文本解密。加密和解密用同一個
'過程'Private Function JiaMi(a As String) As String
Private Sub Command1_Click()
Dim a As String
Dim b As String
a = Text3
For i = 1 To Len(a)
b = b & JiaMi(Mid(a, i, 1))
Next i
Text2 = b
a = Text2
b = ""
For i = 1 To Len(a)
b = b & JiaMi(Mid(a, i, 1))
Next i
Text1 = b
End Sub
Private Function JiaMi(a As String) As String
Dim IntAsc As Integer
IntAsc = Asc(a)
If IntAsc Mod 2 Then
IntAsc = IntAsc + 47
If IntAsc > 126 Then IntAsc = IntAsc - 47
Else
IntAsc = IntAsc - 47
If IntAsc < 33 Then IntAsc = IntAsc + 47
End If
JiaMi = Chr(IntAsc)
End Function