作者:手机用户2602892387 | 来源:互联网 | 2018-05-19 11:59
{代码...}我想要这20个字符而不是这些二进制的东西有什么简单的办法吗?说清楚一些:这个函数将输出长度为160bit(也就是20byte)的二进制,其中每8bit的二进制对应ASCII码的一个字符,所以这160bit的二进制对...
我想要这20个字符而不是这些二进制的东西有什么简单的办法吗?
说清楚一些:这个函数将输出长度为160bit(也就是20byte)的二进制,其中每8bit的二进制对应ASCII码的一个字符,所以这160bit的二进制对应20个字符,我想要的就是这20个字符。
这个问题已被关闭,原因:与已有问题重复
回复内容:
我想要这20个字符而不是这些二进制的东西有什么简单的办法吗?
说清楚一些:这个函数将输出长度为160bit(也就是20byte)的二进制,其中每8bit的二进制对应ASCII码的一个字符,所以这160bit的二进制对应20个字符,我想要的就是这20个字符。
我如果没有理解错,它返回的"二进制"正是你要的东西,你可能掉进了自己想法的陷阱。
这是一段依次输出20个字符的ASCII值的简单程序,简单观察一下就知道很多在非可打印字符(值小于32)和扩展区域(值大于127),在扩展区域的位置对于UTF8和GB系列的编码来说都是利用起来表示多位字节的编码的,所以在这些环境下这个编码区域的单个字节是毫无意义的,也就是会出现乱码了
$x = sha1("Shanghai", true);
for ($i = 0; $i
另请参见ASCII表: http://www.ascii-code.com/
楼下请忽略此答案
不知道这个是不是你要的结果:
参考: http://php.net/manual/en/function.sha1.php