没有人有一个GUID来Base34编码器/解码器一个不错的代码片段,我以前用Google搜索周围,并没有真正发现任何的良好来源。GUID来Base34编码器/解码器
回答
这Number base conversion class in C#可以很容易地扩展,如果你认为人们会混淆S和5或B和6或我做base34(或其他人和j或B和8或9和g或任何)
像这样的项目正是我所期待的。至少它比Guid少8个字符,让客户通过电话读回代理商! – 2010-01-07 16:21:21
虽然我也注意到,如果你换成小数渴望在他的代码,以支持它似乎推出某种类型的浮点运算问题引起至少显著位是不正确的,如果你的编码一个号码,然后解码它,你的高阶值获得不同的价值。当然,把Guid分成4个字符是很简单的。虽然这让我怀疑是否会有一段时间,一个4位数的十六进制数转换为base34将会是除了3位数的base34数之外的任何值。 – 2010-01-07 16:37:31
这里的关键方法是ToByteArray和this particular constructor。
编码:
string encodedGuid = Convert.ToBase64String(guid.ToByteArray());
解码:
Guid guid = new Guid(Convert.FromBase64String(encodedGuid));
这是Base32,仍然不是Base34。 – MSalters 2010-01-06 14:46:04
@MSalters如何从Base64变成Base32? – 2010-01-06 15:14:40
这里的一个简化的版本...基本上,它需要一个字符串,计算MD5哈希,提取前四个字节为一个无符号升ong(将字符串有效映射到一个4字节数字),将其转换为base36,然后为“X”和“Y”交换“哦”和“零”字符。然后,它确保最终的字符串只有六个字符,如果需要填充“Z”字符。
require 'digest/md5' # create an easy-to-read 6-digit unique idno idno = original # starting string idno = Digest::MD5.digest(idno).unpack("N").first # digest as unsigned long idno = idno.to_s(36).upcase.tr("0O","XY") # convert to base34 (no "oh" or "zero") idno = idno[0,6].ljust(6,"Z") # final 6-digit unique idno (pad with "Z" chars)
- 1. 8位PCMU编码器/解码器
- 2. JPEG2000上的编码器/解码器
- 3. ASN 1 UPER编码器/解码器
- 4. C++ G711编码器解码器错误
- 5. 分层JPEG编码器/解码器
- 6. PHP的PNG编码器/解码器
- 7. Circe编码器和解码器与Http4
- 8. 编码器/解码器PCM到AMR Android
- 9. Netty Rtsp编码器/解码器问题
- 10. 累积解码器/编码器
- 11. LZW编码器解码器 - 符号表
- 12. BCH编码器/解码器c库
- 13. Python:UnicodeEncodeError'ascii'编解码器
- 14. DjangoUnicodeDecodeError编解码器
- 15. UnicodeDecodeError:'ascii'编解码器无法解码
- 16. 编解码器不能解码在Python
- 17. UnicodeEncodeError:“ASCII”编解码器不能编码
- 18. 编码H265到HVC1编解码器
- 19. 快速编码视频编解码器?
- 20. Again:UnicodeEncodeError:ascii编解码器无法编码
- 21. 编码问题 - 'ascii'编解码器无法解码字节0xc3
- 22. Python/Flask:UnicodeDecodeError/UnicodeEncodeError:'ascii'编解码器无法解码/编码
- 23. 如何编码或解码ascii编解码器?
- 24. 编码器/解码器从encen中的自动编码器抓取
- 25. 约PJSUA和编解码器
- 26. SIP编解码器协商
- 27. 对公地编解码器
- 28. 媒体编解码器api
- 29. 2编解码器logstash
- 30. Speex编解码器 - 每秒
你真的想说base34吗? – Joe 2010-01-06 14:31:38
Base64是常见的; Base32更少。 Base34听起来像一个混合 – MSalters 2010-01-06 14:46:39
Base34,字母数字只有实例或01或OI。 – 2010-01-06 15:10:09