首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否翻译名称

是否翻译名称
EN

Stack Overflow用户
提问于 2013-06-07 03:30:25
回答 1查看 35关注 0票数 0

这只是一个一般性的设计问题。我正在设计一个小应用,它需要以分层的方式存储文件,例如:

代码语言:javascript
复制
dept/group/user1/file#1
dept/group5/user2/file#7

用户名也可以包含任何字符,如“/”、“@”。

使用用户名作为目录名称是否明智,或者我是否应该在每个组下维护一个映射文件,以便将每个用户名映射到一个简化的通用目录名称

代码语言:javascript
复制
user1=dir1
user7=dir7
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-07 04:19:11

尽管有人建议散列您的用户名,但这对于检查是不透明的(因此您不能通过检查文件系统来区分与目录相对应的用户名)和不可逆性(因此,无论是人类系统管理员还是软件都不能通过查阅文件系统来枚举用户名)。因此,它可能会也可能不会对你起作用。

我建议对用户名进行编码。通过从MIME中使用的两种主要内容编码中获得灵感,我可以建议使用quoted-printablebase64

  • 使用,您可以对用户名中的所有“不寻常”字节进行编码,同时保留大多数可打印字符的原样。这样,在使用ls检查目录时,用户名是什么仍然是相当明显的。您应该至少对所有控制字符(值在0到31和127之间的字节)、=/以及外壳程序特有的所有字符(如空格、引号、$#等)进行编码。quoted-printable的缺点是,如果期望用户名包含大量这些不寻常的字符,文件名可能会变得非常长:每个编码序列需要3个bytes.
  • 是一种比quoted-printable更紧凑的编码,以防用户名可能包含许多需要编码的字符,但它不能立即被人类读取,因此目录的ls看起来不是很清楚。请注意,您必须修改标准base64的最后一个字符,例如,将字母表的最后一个字符从/更改为- like this,否则编码的字符串可能包含/.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16970593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档