base64编码替代下划线

Ben*_*ter 0 .net encoding azure

我们正在使用base64编码的文件系统/ url安全变体,以便:

"=" replaced with ""  
"+" replaced with "-"  
"/" replaced with "_"  
Run Code Online (Sandbox Code Playgroud)

我们现在使用Azure blob存储,不允许在容器名称中使用"_".

我们是base64编码Guid.如果我用"0"替换下划线,我是否有碰撞的风险?

更新

不确定为什么要downvote.但要澄清一下.

为什么不使用Guid?

  1. Guid是我的应用程序中的实体的id.由于路径是公共的,我不喜欢暴露Id,因此我编码它的原因.
  2. 我想要更短更友好的路径.与下面的评论之一相反,基本64编码不再是:

    Guid:5b263cdd-2bc2-485d-83d4-81b96930dc5a
    Base64编码:3TwmW8IrXUiD1IG5aTDcWg ==(删除后更短==)

(另一个)更新

似乎对我正在努力实现的目标存在一些困惑(对此抱歉).这是短版本.

  • 我有一个代表我的应用程序中的实体的Guid.
  • 我需要为实体创建一个可公开访问的目录(通过Url).
  • 出于上述原因,我不想将Guid用作目录名称.
  • 之前我曾经问过如何生成一个更友好的Url,它保证了唯一性并且没有暴露原始的Guid.建议是Base64编码.
  • 直到最近我们需要使用Azure blob存储时才能正常工作,因为它不允许在其目录(容器)名称中使用下划线"_".

这就是我所在的地方.

R. *_*des 7

只需在base16中 "编码"GUID 即可.它使用的唯一字符是0123456789ABCDEF,对于大多数用途应该是安全的.

var encoded = guid.ToString("N");
Run Code Online (Sandbox Code Playgroud)