在现代的Unix或Linux系统中,你怎么知道
显然,如果用户名和其他数据仅限于0x00..0x7F范围(并且无论如何都不包括0x00),那么UTF-8、8859-1或8859-15之间就没有区别;存在的字符都被相同地编码。
此外,我使用
/etc/passwd
文件存储用户名称的编码方式?用户名称是否允许包含重音字符(比如ISO 8859-1或8859-15中0x80..0xFF范围内的字符)?/etc/passwd
文件可以包含UTF-8吗?你能判断它是否包含UTF-8吗?在加密或散列之前,密码的明文是什么样子的?显然,如果用户名和其他数据仅限于0x00..0x7F范围(并且无论如何都不包括0x00),那么UTF-8、8859-1或8859-15之间就没有区别;存在的字符都被相同地编码。
此外,我使用
/etc/passwd
作为类似于“基于Unix的机器上用户识别和认证数据库(有时称为目录服务),通常通过PAM访问,有时从本地机器以外的其他机器托管,但有时仍然是本地硬盘上的文件,传统上称为/etc/passwd
,通常由/etc/shadow
支持”的缩写。我还假设关于组数据库(通常是/etc/group
文件)的等效问题具有相同的答案。