当前位置:首页 » 密码管理 » vb加密解密

vb加密解密

发布时间: 2022-05-18 16:29:32

‘壹’ 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

热点内容
美辑编译润色好 发布:2025-05-20 17:34:01 浏览:611
数组组合算法 发布:2025-05-20 17:26:13 浏览:755
qq附近人点赞脚本 发布:2025-05-20 17:18:02 浏览:62
qq邮箱解压缩文件怎么打开 发布:2025-05-20 17:13:44 浏览:738
java类接口的区别 发布:2025-05-20 16:47:13 浏览:115
安卓哪个版本电池好 发布:2025-05-20 16:31:32 浏览:337
安卓手机如何强制刷机荣耀 发布:2025-05-20 16:25:01 浏览:513
繁体语言编译器 发布:2025-05-20 16:01:22 浏览:437
wifi密码忘了怎么设置 发布:2025-05-20 15:47:56 浏览:883
宝马x5买什么配置的好 发布:2025-05-20 15:47:49 浏览:44