为了账号安全,请及时绑定邮箱和手机立即绑定

将字符串转换为二进制,然后再次使用PHP返回

将字符串转换为二进制,然后再次使用PHP返回

PHP
守候你守候我 2019-10-18 09:51:51
有没有一种方法可以将字符串转换为二进制然后再返回到标准PHP库中?要弄清楚我要做什么,是将密码存储在数据库中。我将首先使用哈希函数将其转换,然后最终将其存储为二进制。我发现最好的方法是使用此功能。似乎同时散列并以二进制输出。http://php.net/manual/zh/function.hash-hmac.php
查看完整描述

3 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

您要使用pack和base_convert。


// Convert a string into binary

// Should output: 0101001101110100011000010110001101101011

$value = unpack('H*', "Stack");

echo base_convert($value[1], 16, 2);


// Convert binary into a string

// Should output: Stack

echo pack('H*', base_convert('0101001101110100011000010110001101101011', 2, 16));


查看完整回答
反对 回复 2019-10-18
?
莫回无

TA贡献1865条经验 获得超7个赞

是的,当然!


那里...


$bin = decbin(ord($char));

...然后再回来。


$char = chr(bindec($bin));


查看完整回答
反对 回复 2019-10-18
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

字符串只是字节序列,因此实际上是PHP中的二进制数据。您到底想做什么?


编辑


如果你想在数据库中存储二进制数据,这个问题经常是在你的数据库中的列定义。PHP不二进制数据和字符串之间进行区分,但是数据库做。比如在MySQL中,你应该存储在二进制数据BINARY,VARBINARY或BLOB列。


另一种办法是给base64_encode你的PHP字符串,并将其存储在一些VARCHAR或TEXT数据库列。但要注意的是,当字符串的长度将增加base64_encode使用。


查看完整回答
反对 回复 2019-10-18
  • 3 回答
  • 0 关注
  • 337 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信