【发布时间】:2013-07-20 20:48:29
【问题描述】:
大家好,我的问题看起来很愚蠢:
使用人crypt()
salt 是从集合 [a–zA–Z0–9./] 中选择的两个字符的字符串,它是 12 位
这是怎么回事,因为它是一个两个字符的字符串,它应该是 16 位,因此 char 大小是一个字节??
【问题讨论】:
大家好,我的问题看起来很愚蠢:
使用人crypt()
salt 是从集合 [a–zA–Z0–9./] 中选择的两个字符的字符串,它是 12 位
这是怎么回事,因为它是一个两个字符的字符串,它应该是 16 位,因此 char 大小是一个字节??
【问题讨论】:
如果您计算集合中的字符总数,您会看到有 64 (2^6) 个元素:26 个拉丁大写字母、26 个小写字母、10 个数字加上 2 个额外字符:句点和斜杠。
两个 6 位字符 -- 12 位。
显然,crypt() 必须使用非 ASCII 的东西将盐字符映射到位序列(我怀疑是为了用户方便)。
【讨论】: