gpt4 book ai didi

string - VB6使用密码加密文本

转载 作者:行者123 更新时间:2023-12-04 22:07:36 32 4
gpt4 key购买 nike

寻找一个简单的文本加密/解密 VB6 代码。理想情况下,解决方案应该接受 (text, password)参数并产生可读的输出(没有任何特殊字符),因此它可以在任何地方使用而不会出现编码问题。

有很多可用于 .NET 的代码,但对于旧版 VB6,我能找到的代码并不多。到目前为止我发现的只有这个:http://www.devx.com/vb2themax/Tip/19211

最佳答案

我正在使用这样的 RC4 实现

Option Explicit

Private Sub Command1_Click()
Dim sSecret As String

sSecret = ToHexDump(CryptRC4("a message here", "password"))
Debug.Print sSecret
Debug.Print CryptRC4(FromHexDump(sSecret), "password")
End Sub

Public Function CryptRC4(sText As String, sKey As String) As String
Dim baS(0 To 255) As Byte
Dim baK(0 To 255) As Byte
Dim bytSwap As Byte
Dim lI As Long
Dim lJ As Long
Dim lIdx As Long

For lIdx = 0 To 255
baS(lIdx) = lIdx
baK(lIdx) = Asc(Mid$(sKey, 1 + (lIdx Mod Len(sKey)), 1))
Next
For lI = 0 To 255
lJ = (lJ + baS(lI) + baK(lI)) Mod 256
bytSwap = baS(lI)
baS(lI) = baS(lJ)
baS(lJ) = bytSwap
Next
lI = 0
lJ = 0
For lIdx = 1 To Len(sText)
lI = (lI + 1) Mod 256
lJ = (lJ + baS(lI)) Mod 256
bytSwap = baS(lI)
baS(lI) = baS(lJ)
baS(lJ) = bytSwap
CryptRC4 = CryptRC4 & Chr$((pvCryptXor(baS((CLng(baS(lI)) + baS(lJ)) Mod 256), Asc(Mid$(sText, lIdx, 1)))))
Next
End Function

Private Function pvCryptXor(ByVal lI As Long, ByVal lJ As Long) As Long
If lI = lJ Then
pvCryptXor = lJ
Else
pvCryptXor = lI Xor lJ
End If
End Function

Public Function ToHexDump(sText As String) As String
Dim lIdx As Long

For lIdx = 1 To Len(sText)
ToHexDump = ToHexDump & Right$("0" & Hex(Asc(Mid(sText, lIdx, 1))), 2)
Next
End Function

Public Function FromHexDump(sText As String) As String
Dim lIdx As Long

For lIdx = 1 To Len(sText) Step 2
FromHexDump = FromHexDump & Chr$(CLng("&H" & Mid(sText, lIdx, 2)))
Next
End Function
Command1输出这个:
9ED5556B3F4DD5C90471C319402E
a message here

您可能需要对 FromHexDump 进行更好的错误处理尽管。

更新 (2018-05-04)

对于更强大的 AES 256 位加密(在 ECB 模式下)和正确处理 unicode 文本/密码,您可以查看 Simple AES 256-bit password protected encryptionmdAesEcb.bas 中实现模块(~380 LOC)。

关于string - VB6使用密码加密文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7025644/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com