在vb6中编码/解码(加密/解密)datetime var

时间:2016-03-30 17:49:16

标签: encryption vb6

我想将datetime var编码为一个8字节的字母数字字符串,以后可以解码。我不需要太多安全措施。

201603301639 -> X5AHY6J9 

反之亦然。

1 个答案:

答案 0 :(得分:0)

数字形式999912312359中的最高日期值适合Double,当转换为Base36时,会输出符合您要求的"CRCPZ21Z"字符串。

使用编码器功能here和此解码器:

Function base36decode(ByRef base36 As String) As Double
    Const alphabet As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    base36decode = InStr(1, alphabet, Right(base36, 1), vbTextCompare) - 1
    For i = Len(base36) - 1 To 1 Step -1
        base36decode = base36decode + 36 ^ (Len(base36) - i) * (InStr(1, alphabet, Mid(base36, i, 1)) - 1)
    Next i
End Function

你可以:

x = ConvertBase10(999912312359, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ")
?x
CRCPZ21Z

?base36decode((x))
 999912312359 

这是编码,而不是加密。对于弱混淆,只需在每个例程使用的字母串中切换字符顺序,或对输入值执行一些任意算术。