vb软件加密
❶ 如何解密vb加密过的字符串,有加密代码
上述代码已经含有加密和解密的函数:
一、加密函数是:encrypt
      调用举例:msgbox encrypt("123456") 
      返回值是:"2468:<"
二、解密函数是:decrypt
      调用举例:msgbox decrypt("2468:<") 
      返回值是:"123456"
❷ 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

(2)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怎样加密明文
MD5 或者Base64 加密。
下面是两个加密方法的代码,
建个模块把下面代码放进去。
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'%                                                    %
'%   --------------  MD5 加密模块  ----------------   %
'%   -------------  Base64编码模块  ---------------   %
'%                                                    %
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Private m_lOnBits(30)
Private m_l2Power(30)
Private Const BITS_TO_A_BYTE = 8
Private Const BYTES_TO_A_WORD = 4
Private Const BITS_TO_A_WORD = 32
Function Hex2Bin(HexStr1 As String)
    Select Case UCase(HexStr1)
        '16进制转换二进制
        Case "0"
            q1 = "0000"
        Case "1"
            q1 = "0001"
        Case "2"
            q1 = "0010"
        Case "3"
            q1 = "0011"
        Case "4"
            q1 = "0100"
        Case "5"
            q1 = "0101"
        Case "6"
            q1 = "0110"
        Case "7"
            q1 = "0111"
        Case "8"
            q1 = "1000"
        Case "9"
            q1 = "1001"
        Case "A"
            q1 = "1010"
        Case "B"
            q1 = "1011"
        Case "C"
            q1 = "1100"
        Case "D"
            q1 = "1101"
        Case "E"
            q1 = "1110"
        Case "F"
            q1 = "1111"
    End Select
    Hex2Bin = q1
End Function
Function Hex2Bin1(HexStr2 As String)
    '分断
    q1 = Hex2Bin(Mid(HexStr2, 1, 1))
    q2 = Hex2Bin(Mid(HexStr2, 2, 1))
    q3 = Hex2Bin(Mid(HexStr2, 3, 1))
    q4 = Hex2Bin(Mid(HexStr2, 4, 1))
    q5 = Hex2Bin(Mid(HexStr2, 5, 1))
    q6 = Hex2Bin(Mid(HexStr2, 6, 1))
    q7 = Hex2Bin(Mid(HexStr2, 7, 1))
    q8 = Hex2Bin(Mid(HexStr2, 8, 1))
    q9 = Hex2Bin(Mid(HexStr2, 9, 1))
    q10 = Hex2Bin(Mid(HexStr2, 10, 1))
    q11 = Hex2Bin(Mid(HexStr2, 11, 1))
    q12 = Hex2Bin(Mid(HexStr2, 12, 1))
    Hex2Bin1 = q1 & q2 & q3 & q4 & q5 & q6 & q7 & q8 & q9 & q10 & q11 & q12
End Function
Function Bin324(BinCode1 As String)
    '填充
    q1 = Mid(BinCode1, 1, 6)
    q2 = Mid(BinCode1, 7, 6)
    q3 = Mid(BinCode1, 13, 6)
    q4 = Mid(BinCode1, 19, 6)
    q5 = Mid(BinCode1, 25, 6)
    q6 = Mid(BinCode1, 31, 6)
    q7 = Mid(BinCode1, 37, 6)
    q8 = Mid(BinCode1, 43, 6)
    
    Bin324 = "00" & q1 & "00" & q2 & "00" & q3 & "00" & q4 & "00" & q5 & "00" & q6 & "00" & q7 & "00" & q8
End Function
Function Bin2Hex(BinCode2 As String)
    '二进制转换为16进制(BASE64一部分)
    Select Case UCase(BinCode2)
        Case "0000"
            q1 = "0"
        Case "0001"
            q1 = "1"
        Case "0010"
            q1 = "2"
        Case "0011"
            q1 = "3"
        Case "0100"
            q1 = "4"
        Case "0101"
            q1 = "5"
        Case "0110"
            q1 = "6"
        Case "0111"
            q1 = "7"
        Case "1000"
            q1 = "8"
        Case "1001"
            q1 = "9"
        Case "1010"
            q1 = "A"
        Case "1011"
            q1 = "B"
        Case "1100"
            q1 = "C"
        Case "1101"
            q1 = "D"
        Case "1110"
            q1 = "E"
        Case "1111"
            q1 = "F"
    End Select
    Bin2Hex = q1
End Function
Function Bin2Hex2(BinCode As String)
    q1 = Bin2Hex(Mid(BinCode, 1, 4))
    q2 = Bin2Hex(Mid(BinCode, 5, 4))
    q3 = Bin2Hex(Mid(BinCode, 9, 4))
    q4 = Bin2Hex(Mid(BinCode, 13, 4))
    Bin2Hex2 = q1 & q2 & q3 & q4
End Function
Function Bin2Hex3(BinCode3 As String)
    q1 = Bin2Hex2(Mid(BinCode3, 1, 16))
    q2 = Bin2Hex2(Mid(BinCode3, 17, 16))
    q3 = Bin2Hex2(Mid(BinCode3, 33, 16))
    q4 = Bin2Hex2(Mid(BinCode3, 49, 16))
    Bin2Hex3 = q1 & q2 & q3 & q4
End Function
Function HexBase64(HexString As String)
    HexBase64 = HexBase64_2(Bin2Hex3(Bin324(Hex2Bin1(HexString))))
End Function
Function HexBase64_1(HexString As String)
    Select Case HexString
        Case "00"
            q1 = "A"
        Case "01"
            q1 = "B"
        Case "02"
            q1 = "C"
        Case "03"
            q1 = "D"
        Case "04"
            q1 = "E"
        Case "05"
            q1 = "F"
        Case "06"
            q1 = "G"
        Case "07"
            q1 = "H"
        Case "08"
            q1 = "I"
        Case "09"
            q1 = "J"
        Case "0A"
            q1 = "K"
        Case "0B"
            q1 = "L"
        Case "0C"
            q1 = "M"
        Case "0D"
            q1 = "N"
        Case "0E"
            q1 = "O"
        Case "0F"
            q1 = "P"
        Case "10"
            q1 = "Q"
        Case "11"
            q1 = "R"
        Case "12"
            q1 = "S"
        Case "13"
            q1 = "T"
        Case "14"
            q1 = "U"
        Case "15"
            q1 = "V"
        Case "16"
            q1 = "W"
        Case "17"
            q1 = "X"
        Case "18"
            q1 = "Y"
        Case "19"
            q1 = "Z"
        Case "1A"
            q1 = "a"
        Case "1B"
            q1 = "b"
        Case "1C"
            q1 = "c"
        Case "1D"
            q1 = "d"
        Case "1E"
            q1 = "e"
        Case "1F"
            q1 = "f"
        Case "20"
            q1 = "g"
        Case "21"
            q1 = "h"
        Case "22"
            q1 = "i"
        Case "23"
            q1 = "j"
        Case "24"
            q1 = "k"
        Case "25"
            q1 = "l"
        Case "26"
            q1 = "m"
        Case "27"
            q1 = "n"
        Case "28"
            q1 = "o"
        Case "29"
            q1 = "p"
        Case "2A"
            q1 = "q"
        Case "2B"
            q1 = "r"
        Case "2C"
            q1 = "s"
        Case "2D"
            q1 = "t"
        Case "2E"
            q1 = "u"
        Case "2F"
            q1 = "v"
        
        Case "30"
            q1 = "w"
        Case "31"
            q1 = "x"
        Case "32"
            q1 = "y"
        Case "33"
            q1 = "z"
        Case "34"
            q1 = "0"
        Case "35"
            q1 = "1"
        Case "36"
            q1 = "2"
        Case "37"
            q1 = "3"
        Case "38"
            q1 = "4"
        Case "39"
            q1 = "5"
        Case "3A"
            q1 = "6"
        Case "3B"
            q1 = "7"
        Case "3C"
            q1 = "8"
        Case "3D"
            q1 = "9"
        Case "3E"
            q1 = "+"
        Case "3F"
            q1 = "/"
    
    End Select
    HexBase64_1 = q1
End Function
Function HexBase64_2(HexString As String)
    q1 = HexBase64_1(Mid(HexString, 1, 2))
    q2 = HexBase64_1(Mid(HexString, 3, 2))
    q3 = HexBase64_1(Mid(HexString, 5, 2))
    q4 = HexBase64_1(Mid(HexString, 7, 2))
    q5 = HexBase64_1(Mid(HexString, 9, 2))
    q6 = HexBase64_1(Mid(HexString, 11, 2))
    q7 = HexBase64_1(Mid(HexString, 13, 2))
    q8 = HexBase64_1(Mid(HexString, 15, 2))
    HexBase64_2 = q1 & q2 & q3 & q4 & q5 & q6 & q7 & q8
End Function
Function Hex2Base64(HexCode As String)
    For i = 0 To Len(HexCode) Step 12
        q1 = q1 & HexBase64(Mid(HexCode, i + 1, 12))
    Next
    Hex2Base64 = q1
End Function
Private Function md5_F(x, y, z)
    md5_F = (x And y) Or ((Not x) And z)
End Function
Private Function md5_G(x, y, z)
    md5_G = (x And z) Or (y And (Not z))
End Function
Private Function md5_H(x, y, z)
    md5_H = (x Xor y Xor z)
End Function
Private Function md5_I(x, y, z)
    md5_I = (y Xor (x Or (Not z)))
End Function
Private Sub md5_FF(a, b, c, d, x, s, ac)
    a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac))
    a = RotateLeft(a, s)
    a = AddUnsigned(a, b)
End Sub
Private Sub md5_GG(a, b, c, d, x, s, ac)
    a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac))
    a = RotateLeft(a, s)
    a = AddUnsigned(a, b)
End Sub
Private Sub md5_HH(a, b, c, d, x, s, ac)
    a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac))
    a = RotateLeft(a, s)
    a = AddUnsigned(a, b)
End Sub
Private Sub md5_II(a, b, c, d, x, s, ac)
    a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac))
    a = RotateLeft(a, s)
    a = AddUnsigned(a, b)
End Sub
Private Function ConvertToWordArray(sMessage)
    Dim lMessageLength
    Dim lNumberOfWords
    Dim lWordArray()
    Dim lBytePosition
    Dim lByteCount
    Dim lWordCount
    
    Const MODULUS_BITS = 512
    Const CONGRUENT_BITS = 448
    
    lMessageLength = Len(sMessage)
    
    lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) \ BITS_TO_A_BYTE)) \ (MODULUS_BITS \ BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS \ BITS_TO_A_WORD)
    ReDim lWordArray(lNumberOfWords - 1)
    
    lBytePosition = 0
    lByteCount = 0
    Do Until lByteCount >= lMessageLength
        lWordCount = lByteCount \ BYTES_TO_A_WORD
        lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE
        lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition)
        lByteCount = lByteCount + 1
    Loop
    lWordCount = lByteCount \ BYTES_TO_A_WORD
    lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE
    lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition)
    lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3)
    lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29)
    
    ConvertToWordArray = lWordArray
End Function
Private Function WordToHex(lValue)
    Dim lByte
    Dim lCount
    
    For lCount = 0 To 3
        lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1)
        WordToHex = WordToHex & Right("0" & Hex(lByte), 2)
    Next
End Function
Public Function MD5(sMessage, stype)
    m_lOnBits(0) = CLng(1)
    m_lOnBits(1) = CLng(3)
    m_lOnBits(2) = CLng(7)
    m_lOnBits(3) = CLng(15)
    m_lOnBits(4) = CLng(31)
    m_lOnBits(5) = CLng(63)
    m_lOnBits(6) = CLng(127)
    m_lOnBits(7) = CLng(255)
    m_lOnBits(8) = CLng(511)
    m_lOnBits(9) = CLng(1023)
    m_lOnBits(10) = CLng(2047)
    m_lOnBits(11) = CLng(4095)
    m_lOnBits(12) = CLng(8191)
    m_lOnBits(13) = CLng(16383)
    m_lOnBits(14) = CLng(32767)
    m_lOnBits(15) = CLng(65535)
    m_lOnBits(16) = CLng(131071)
    m_lOnBits(17) = CLng(262143)
    m_lOnBits(18) = CLng(524287)
    m_lOnBits(19) = CLng(1048575)
    m_lOnBits(20) = CLng(2097151)
    m_lOnBits(21) = CLng(4194303)
    m_lOnBits(22) = CLng(8388607)
    m_lOnBits(23) = CLng(16777215)
    m_lOnBits(24) = CLng(33554431)
    m_lOnBits(25) = CLng(67108863)
    m_lOnBits(26) = CLng(134217727)
    m_lOnBits(27) = CLng(268435455)
    m_lOnBits(28) = CLng(536870911)
    m_lOnBits(29) = CLng(1073741823)
    m_lOnBits(30) = CLng(2147483647)
    
    m_l2Power(0) = CLng(1)
    m_l2Power(1) = CLng(2)
    m_l2Power(2) = CLng(4)
    m_l2Power(3) = CLng(8)
    m_l2Power(4) = CLng(16)
    m_l2Power(5) = CLng(32)
    m_l2Power(6) = CLng(64)
    m_l2Power(7) = CLng(128)
    m_l2Power(8) = CLng(256)
    m_l2Power(9) = CLng(512)
    m_l2Power(10) = CLng(1024)
    m_l2Power(11) = CLng(2048)
    m_l2Power(12) = CLng(4096)
    m_l2Power(13) = CLng(8192)
    m_l2Power(14) = CLng(16384)
    m_l2Power(15) = CLng(32768)
    m_l2Power(16) = CLng(65536)
    m_l2Power(17) = CLng(131072)
    m_l2Power(18) = CLng(262144)
    m_l2Power(19) = CLng(524288)
    m_l2Power(20) = CLng(1048576)
    m_l2Power(21) = CLng(2097152)
    m_l2Power(22) = CLng(4194304)
    m_l2Power(23) = CLng(8388608)
    m_l2Power(24) = CLng(16777216)
    m_l2Power(25) = CLng(33554432)
    m_l2Power(26) = CLng(67108864)
    m_l2Power(27) = CLng(134217728)
    m_l2Power(28) = CLng(268435456)
    m_l2Power(29) = CLng(536870912)
    m_l2Power(30) = CLng(1073741824)
Dim x
    Dim k
    Dim AA
    Dim BB
    Dim CC
    Dim DD
    Dim a
    Dim b
    Dim c
    Dim d
    
    Const S11 = 7
    Const S12 = 12
    Const S13 = 17
    Const S14 = 22
    Const S21 = 5
    Const S22 = 9
    Const S23 = 14
    Const S24 = 20
    Const S31 = 4
    Const S32 = 11
    Const S33 = 16
    Const S34 = 23
    Const S41 = 6
    Const S42 = 10
    Const S43 = 15
    Const S44 = 21
    x = ConvertToWordArray(sMessage)
    
    a = &H67452301
    b = &HEFCDAB89
    c = &H98BADCFE
    d = &H10325476
    For k = 0 To UBound(x) Step 16
        AA = a
        BB = b
        CC = c
        DD = d
    
        md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478
        md5_FF d, a, b, c, x(k + 1), S12, &HE8C7B756
        md5_FF c, d, a, b, x(k + 2), S13, &H242070DB
        md5_FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE
        md5_FF a, b, c, d, x(k + 4), S11, &HF57C0FAF
        md5_FF d, a, b, c, x(k + 5), S12, &H4787C62A
        md5_FF c, d, a, b, x(k + 6), S13, &HA8304613
        md5_FF b, c, d, a, x(k + 7), S14, &HFD469501
        md5_FF a, b, c, d, x(k + 8), S11, &H698098D8
        md5_FF d, a, b, c, x(k + 9), S12, &H8B44F7AF
        md5_FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1
        md5_FF b, c, d, a, x(k + 11), S14, &H895CD7BE
        md5_FF a, b, c, d, x(k + 12), S11, &H6B901122
        md5_FF d, a, b, c, x(k + 13), S12, &HFD987193
        md5_FF c, d, a, b, x(k + 14), S13, &HA679438E
        md5_FF b, c, d, a, x(k + 15), S14, &H49B40821
    
        md5_GG a, b, c, d, x(k + 1), S21, &HF61E2562
        md5_GG d, a, b, c, x(k + 6), S22, &HC040B340
        md5_GG c, d, a, b, x(k + 11), S23, &H265E5A51
        md5_GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA
        md5_GG a, b, c, d, x(k + 5), S21, &HD62F105D
        md5_GG d, a, b, c, x(k + 10), S22, &H2441453
        md5_GG c, d, a, b, x(k + 15), S23, &HD8A1E681
        md5_GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8
        md5_GG a, b, c, d, x(k + 9), S21, &H21E1CDE6
        md5_GG d, a, b, c, x(k + 14), S22, &HC33707D6
        md5_GG c, d, a, b, x(k + 3), S23, &HF4D50D87
        md5_GG b, c, d, a, x(k + 8), S24, &H455A14ED
        md5_GG a, b, c, d, x(k + 13), S21, &HA9E3E905
        md5_GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8
        md5_GG c, d, a, b, x(k + 7), S23, &H676F02D9
        md5_GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A
            
        md5_HH a, b, c, d, x(k + 5), S31, &HFFFA3942
        md5_HH d, a, b, c, x(k + 8), S32, &H8771F681
        md5_HH c, d, a, b, x(k + 11), S33, &H6D9D6122
        md5_HH b, c, d, a, x(k + 14), S34, &HFDE5380C
        md5_HH a, b, c, d, x(k + 1), S31, &HA4BEEA44
        md5_HH d, a, b, c, x(k + 4), S32, &H4BDECFA9
        md5_HH c, d, a, b, x(k + 7), S33, &HF6BB4B60
        md5_HH b, c, d, a, x(k + 10), S34, &HBEBFBC70
        md5_HH a, b, c, d, x(k + 13), S31, &H289B7EC6
        md5_HH d, a, b, c, x(k + 0), S32, &HEAA127FA
        md5_HH c, d, a, b, x(k + 3), S33, &HD4EF3085
        md5_HH b, c, d, a, x(k + 6), S34, &H4881D05
        md5_HH a, b, c, d, x(k + 9), S31, &HD9D4D039
        md5_HH d, a, b, c, x(k + 12), S32, &HE6DB99E5
        md5_HH c, d, a, b, x(k + 15), S33, &H1FA27CF8
        md5_HH b, c, d, a, x(k + 2), S34, &HC4AC5665
    
        md5_II a, b, c, d, x(k + 0), S41, &HF4292244
        md5_II d, a, b, c, x(k + 7), S42, &H432AFF97
        md5_II c, d, a, b, x(k + 14), S43, &HAB9423A7
        md5_II b, c, d, a, x(k + 5), S44, &HFC93A039
        md5_II a, b, c, d, x(k + 12), S41, &H655B59C3
        md5_II d, a, b, c, x(k + 3), S42, &H8F0CCC92
        md5_II c, d, a, b, x(k + 10), S43, &HFFEFF47D
        md5_II b, c, d, a, x(k + 1), S44, &H85845DD1
        md5_II a, b, c, d, x(k + 8), S41, &H6FA87E4F
        md5_II d, a, b, c, x(k + 15), S42, &HFE2CE6E0
        md5_II c, d, a, b, x(k + 6), S43, &HA3014314
        md5_II b, c, d, a, x(k + 13), S44, &H4E0811A1
        md5_II a, b, c, d, x(k + 4), S41, &HF7537E82
        md5_II d, a, b, c, x(k + 11), S42, &HBD3AF235
        md5_II c, d, a, b, x(k + 2), S43, &H2AD7D2BB
        md5_II b, c, d, a, x(k + 9), S44, &HEB86D391
    
        a = AddUnsigned(a, AA)
        b = AddUnsigned(b, BB)
        c = AddUnsigned(c, CC)
        d = AddUnsigned(d, DD)
    Next
    
    If stype = 32 Then
    MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))
    Else
    MD5 = LCase(WordToHex(b) & WordToHex(c))
    End If
    
End Function
Private Function AddUnsigned(lX, lY)
    Dim lX4
    Dim lY4
    Dim lX8
    Dim lY8
    Dim lResult
 
    lX8 = lX And &H80000000
    lY8 = lY And &H80000000
    lX4 = lX And &H40000000
    lY4 = lY And &H40000000
 
    lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)
 
    If lX4 And lY4 Then
        lResult = lResult Xor &H80000000 Xor lX8 Xor lY8
    ElseIf lX4 Or lY4 Then
        If lResult And &H40000000 Then
            lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8
        Else
            lResult = lResult Xor &H40000000 Xor lX8 Xor lY8
        End If
    Else
        lResult = lResult Xor lX8 Xor lY8
    End If
 
    AddUnsigned = lResult
End Function
Private Function LShift(lValue, iShiftBits)
    If iShiftBits = 0 Then
        LShift = lValue
        Exit Function
    ElseIf iShiftBits = 31 Then
        If lValue And 1 Then
            LShift = &H80000000
        Else
            LShift = 0
        End If
        Exit Function
    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
        Err.Raise 6
    End If
    If (lValue And m_l2Power(31 - iShiftBits)) Then
        LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000
    Else
        LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits))
    End If
End Function
Private Function RShift(lValue, iShiftBits)
    If iShiftBits = 0 Then
        RShift = lValue
        Exit Function
    ElseIf iShiftBits = 31 Then
        If lValue And &H80000000 Then
            RShift = 1
        Else
            RShift = 0
        End If
        Exit Function
    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
        Err.Raise 6
    End If
    
    RShift = (lValue And &H7FFFFFFE) \ m_l2Power(iShiftBits)
    If (lValue And &H80000000) Then
        RShift = (RShift Or (&H40000000 \ m_l2Power(iShiftBits - 1)))
    End If
End Function
Private Function RotateLeft(lValue, iShiftBits)
    RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits))
End Function
Public Function Str2QQPwdHash(Str1 As String)
    Str2QQPwdHash = Hex2Base64(MD5(Str1, 32)) & "=="
End Function
❹ 求VB.NET生成TET文件的加密方法
使用加密方式存储即可实现别人无法查看内容,加密的方式有很多,适用你这里使用的是可逆的算法,推荐你使用DES加密 
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports System.IO  
Imports System.Security  
Imports System.Security.Cryptography  
Namespace ZU14  
NotInheritable Public Class DES  
Private iv As String = "1234的yzo" 
Private key As String = "123在yzo" 
'/ <summary> 
'/ DES加密偏移量,必须是>=8位长的字符串  
'/ </summary> 
Public Property IV() As String  
Get  
Return iv  
End Get  
Set  
iv = value 
End Set  
End Property  
'/ <summary> 
'/ DES加密的私钥,必须是8位长的字符串  
'/ </summary> 
Public Property Key() As String  
Get  
Return key   
End Get  
Set  
key = value 
End Set  
End Property  
'/ <summary> 
'/ 对字符串进行DES加密  
'/ </summary> 
'/ <param name="sourceString">待加密的字符串</param> 
'/ <returns>加密后的BASE64编码的字符串</returns> 
Public Function Encrypt(sourceString As String) As String  
Dim btKey As Byte() = Encoding.Default.GetBytes(key)  
Dim btIV As Byte() = Encoding.Default.GetBytes(iv)  
Dim des As New DESCryptoServiceProvider()  
Dim ms As New MemoryStream()  
Try  
Dim inData As Byte() = Encoding.Default.GetBytes(sourceString)  
Try  
Dim cs As New CryptoStream(ms, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write)  
Try  
cs.Write(inData, 0, inData.Length)  
cs.FlushFinalBlock()  
Finally  
cs.Dispose()  
End Try  
Return Convert.ToBase64String(ms.ToArray())  
Catch  
End Try  
Finally  
ms.Dispose()  
End Try  
End Function 'Encrypt  
'/ <summary> 
'/ 对DES加密后的字符串进行解密  
'/ </summary> 
'/ <param name="encryptedString">待解密的字符串</param> 
'/ <returns>解密后的字符串</returns> 
Public Function Decrypt(encryptedString As String) As String  
Dim btKey As Byte() = Encoding.Default.GetBytes(key)  
Dim btIV As Byte() = Encoding.Default.GetBytes(iv)  
Dim des As New DESCryptoServiceProvider()  
Dim ms As New MemoryStream()  
Try  
Dim inData As Byte() = Convert.FromBase64String(encryptedString)  
Try  
Dim cs As New CryptoStream(ms, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write)  
Try  
cs.Write(inData, 0, inData.Length)  
cs.FlushFinalBlock()  
Finally  
cs.Dispose()  
End Try  
Return Encoding.Default.GetString(ms.ToArray())  
Catch  
End Try  
Finally  
ms.Dispose()  
End Try  
End Function 'Decrypt  
'/ <summary> 
'/ 对文件内容进行DES加密  
'/ </summary> 
'/ <param name="sourceFile">待加密的文件绝对路径</param> 
'/ <param name="destFile">加密后的文件保存的绝对路径</param> 
Overloads Public Sub EncryptFile(sourceFile As String, destFile As String)  
If Not File.Exists(sourceFile) Then  
Throw New FileNotFoundException("指定的文件路径不存在!", sourceFile)  
End If  
Dim btKey As Byte() = Encoding.Default.GetBytes(key)  
Dim btIV As Byte() = Encoding.Default.GetBytes(iv)  
Dim des As New DESCryptoServiceProvider()  
Dim btFile As Byte() = File.ReadAllBytes(sourceFile)  
Dim fs As New FileStream(destFile, FileMode.Create, FileAccess.Write)  
Try  
Try  
Dim cs As New CryptoStream(fs, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write)  
Try  
cs.Write(btFile, 0, btFile.Length)  
cs.FlushFinalBlock()  
Finally  
cs.Dispose()  
End Try  
Catch  
Finally  
fs.Close()  
End Try  
Finally  
fs.Dispose()  
End Try  
End Sub 'EncryptFile  
'/ <summary> 
'/ 对文件内容进行DES加密,加密后覆盖掉原来的文件  
'/ </summary> 
'/ <param name="sourceFile">待加密的文件的绝对路径</param> 
Overloads Public Sub EncryptFile(sourceFile As String)  
EncryptFile(sourceFile, sourceFile)  
End Sub 'EncryptFile  
'/ <summary> 
'/ 对文件内容进行DES解密  
'/ </summary> 
'/ <param name="sourceFile">待解密的文件绝对路径</param> 
'/ <param name="destFile">解密后的文件保存的绝对路径</param> 
Overloads Public Sub DecryptFile(sourceFile As String, destFile As String)  
If Not File.Exists(sourceFile) Then  
Throw New FileNotFoundException("指定的文件路径不存在!", sourceFile)  
End If  
Dim btKey As Byte() = Encoding.Default.GetBytes(key)  
Dim btIV As Byte() = Encoding.Default.GetBytes(iv)  
Dim des As New DESCryptoServiceProvider()  
Dim btFile As Byte() = File.ReadAllBytes(sourceFile)  
Dim fs As New FileStream(destFile, FileMode.Create, FileAccess.Write)  
Try  
Try  
Dim cs As New CryptoStream(fs, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write)  
Try  
cs.Write(btFile, 0, btFile.Length)  
cs.FlushFinalBlock()  
Finally  
cs.Dispose()  
End Try  
Catch  
Finally  
fs.Close()  
End Try  
Finally  
fs.Dispose()  
End Try  
End Sub 'DecryptFile  
'/ <summary> 
'/ 对文件内容进行DES解密,加密后覆盖掉原来的文件  
'/ </summary> 
'/ <param name="sourceFile">待解密的文件的绝对路径</param> 
Overloads Public Sub DecryptFile(sourceFile As String)  
DecryptFile(sourceFile, sourceFile)  
End Sub 'DecryptFile  
End Class 'DES  
End Namespace 'ZU14 
对文本文件加密
Dim des As New ZU14.DES()  
des.IV = "abcd哈哈笑" 
des.Key = "必须八位" 
'加密
des.EncryptFile("d:\a.txt", "d:\b.txt")  
'解密
des.DecryptFile("d:\b.txt")
❺ vb中如何对字符串进行加密和解密(有汉字的)
函数没问题, 你的调用方法有问题:
Private Sub Form_Load()
Dim s As String
s = UserCode("1234中文")
Debug.Print s                '这里显示出来的就是一串?
Debug.Print UserDeCode(s)    '这里显示出来的是加密前的原文了
End
End Sub
