VB 加密与解密的程序代码

VB 加密与解密的程序代码,第1张

加密:

Private Function 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

Next I

JiaMi = strJiaMi

End Function

解密函数

Private Function 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))

Next I

JieMi = varFinalPass

End Function

扩展资料:

注意事项

编写加密程序,将用户输入的一个英文句子加密为加密字符串,然后输出加密字符串。假设句子长度不超过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 指向加密字符串的字符串指针;

字符加密函数代码。

Private Sub Command1_Click() '加密

Dim p As String, s As String, t As String

Dim i As Integer, k As Integer

p = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

s = Text1.Text

For i = 1 To Len(s)

    k = InStr(p, Mid(s, i, 1))

    If k = 0 Then

        MsgBox "数据有误"

        Exit Sub

    Else

        t = t & Mid(p, ((k + 4) Mod 52) + 1, 1)

    End If

Next

Text2.Text = t

Text1.Text = ""

End Sub

Private Sub Command2_Click() '解密

Dim p As String, s As String, t As String

Dim i As Integer, k As Integer

p = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

s = Text2.Text

For i = 1 To Len(s)

    k = InStr(p, Mid(s, i, 1))

    If k = 0 Then

        MsgBox "数据有误"

        Exit Sub

    Else

        t = t & Mid(p, ((k + 46) Mod 52) + 1, 1)

    End If

Next

Text1.Text = t

Text2.Text = ""

End Sub

以上代码用到四个控件:Text1放加密前的数据,Text2放加密后的数据,Command1点击加密,Command2点击解密


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11874647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存