从the first part of my problem开始,我现在正在尝试编写一个经典的Douglas Crockford's Base32 Encoding实现。
这个项目的时间很紧,所以当我自己解决这个问题时,我希望有人手头上有现成的东西(或者至少可以比我更快地完成一个)。
发布于 2009-08-19 15:58:12
第一次运行...这看起来是对的吗?
'Base32 encoding functions for shorter, less confusing verification numbers'
Const kBase32Digits = "0123456789abcdefghjkmnpqrstvwxyz"
'To Base32'
Function ToBase32(ByVal lInput)
Dim lModulo, sTemp
Do Until lInput = 0
lModulo = lInput Mod 32
sTemp = Mid(kBase32Digits, lModulo + 1, 1) & sTemp
lInput = lInput \ 32
Loop
ToBase32 = sTemp
End Function
'From Base32'
Function FromBase32(ByVal sInput)
Dim sTemp, sR, i,iY,lLen, zMultiplier
sTemp = LCase(sInput)
sTemp = Replace(sTemp,"o","0")
sTemp = Replace(sTemp,"i","1")
sTemp = Replace(sTemp,"l","1")
sTemp = Replace(sTemp,"u","v")
zMultiplier = 1
lLen = Len(sTemp)
For i = lLen To 1 Step -1
sR = Mid(sTemp, i, 1)
iY = InStr(1, kBase32Digits, sR, vbTextCompare) - 1
FromBase32 = FromBase32 + iY * zMultiplier
zMultiplier = zMultiplier * 32
Next
End Function编辑:到目前为止,似乎工作得很好...除非有人贴出更好的东西,否则我会用这个的。
https://stackoverflow.com/questions/1300846
复制相似问题