後でデコードできる8バイトの英数字の文字列にdatetime varをエンコードする必要があります。私はあまりにも多くのセキュリティを必要としません。datetime var in vb6
201603301639 -> X5AHY6J9
とviceversa。
後でデコードできる8バイトの英数字の文字列にdatetime varをエンコードする必要があります。私はあまりにも多くのセキュリティを必要としません。datetime var in vb6
201603301639 -> X5AHY6J9
とviceversa。
数字形式の最高の日付の値999912312359
はDoubleに収まり、Base36に変換されたときには、あなたの要件を満たす"CRCPZ21Z"
の文字列を出力します。
エンコーダ機能hereと、このデコーダを使用する:
Function base36decode(ByRef base36 As String) As Double
Const alphabet As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
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, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
?x
CRCPZ21Z
?base36decode((x))
999912312359
これはエンコーディングではなく、暗号化されます。 弱難読化の場合、各ルーチンが使用するアルファベット文字列の文字順を単純に切り替えるか、入力値に対して任意の算術演算を実行します。
これはとてもうまく動作します。どうも有り難う、わが友よ。 – Polarix
適合しません。 'Date'データ型には64ビットが必要ですが、スペースは48ビットよりもわずかです(大文字と小文字、数字の0〜9を仮定)。 – Bob77
私は日付とエンコーディング時間だけを共用できませんでした。 e。 "1247"。 – Polarix