草庐IT

php - 为什么像 sha1 这样的散列函数最多只使用 16 个不同的字符(十六进制)?

抱歉我有这种好奇心。sha1使用[a-f0-9]字符作为它的散列函数。我可以知道为什么它不使用所有可能的字符[a-z0-9]通过使用所有可用的字符它可以大大增加可能的不同哈希的数量,从而降低可能发生冲突的可能性.如果您认为这不是一个真正的问题,请发表评论,我会立即删除此问题。===如答案中所述,sha1NOT仅使用16个字符。正确的事实是:sha1是160位的二进制数据(引文)。我添加这个是为了防止混淆。 最佳答案 您将表示与内容混淆了。sha1是160位的二进制数据。您可以用以下方式轻松地表示它:hex:0xf1d2d2f924e

php - Googlebot 无法解释的 32 字符十六进制附加字符串导致每天超过 20,000 个 404 错误

我有一个非常有趣的问题,我无法解释。每隔2到6秒,googlebot(我查过googlebotsIP,它是真实的东西[使用主机IP])正在请求我们网站上的一个页面(运行:php、apache、mongodb)不存在(404s)。没有其他机器人或人类曾经请求过这样的页面!只是谷歌机器人。每个请求看起来像这样:/2de4f853c2853807b2e72387aa8928a4/ea5700c343d1a9798bc554af7c1a330e/e5aafa102d54ba7517703336846cc019我们的代码不使用任何32个字符的字符串,并且没有任何类似于我们网站内部或外部的链接。我

php - 在 PHP 中对相似的十六进制代码进行分组

我有以下颜色代码:f3f3f3f9f9f9从视觉上看,这两种颜色代码很相似。如何将它们组合成一种颜色,或删除其中一个?如果我尝试使用base_convert($hex,16,10)并获取值之间的差异,问题是某些颜色与int值相似但在视觉上确实不同。例如:#484848=4737096(grey)#4878a8=4749480(blue)-visuallythereisahugedifference,butasintvaluethedifferenceissmall和#183030=1585200(greyish)#181818=1579032(greyish)-bothwaysisfi

PHP 字符串转十六进制

我有一个这样的字符串:[0-9A-Za-z\+/=]*如何转换为以下形式:"\133\x30\55\x39\101\x2d\132\x61\55\x7a\134\x2b\57\x3d\135\x2a"有什么功能吗? 最佳答案 functionstrtohex($string){$string=str_split($string);foreach($stringas&$char)$char="\x".dechex(ord($char));returnimplode('',$string);}printstrtohex("[0-9A-Z

php - 将 base64 的 SHA1 哈希转换为十六进制哈希

我在mySQL中有一个使用生成的密码列表$hash='{SHA}'.base64_encode(sha1('somestringhere',true));我需要将它们转换成等同于$hash=sha1('somestringhere');因为这些是我们的邮件系统使用的密码,我们想转换到另一个邮件系统(但要求它是40个字符的十六进制哈希:(我将如何从一种格式转换为另一种格式(我很确定我之前已经这样做过,但是另一种方式,尽管我找不到代码!)请注意,我提到数据在mySQL中-这无关紧要-我知道如何获取数据,只是不转换它。哈希是一样的——我只是想转换信息的打包方式(我认为这只需要从base64转

php - php 中的 pack()非法十六进制数字警告

我在php中使用pack()时遇到一些问题$currencypair="EUR/USD";$buy_sell="buy";$alert_device_token=array("a","a","b");$message="Your".$currencypair."".$buy_sell."alertpricehasbeenreached!";$payload['aps']=array('alert'=>$message,'badge'=>1,'sound'=>'default');$payload=json_encode($payload);foreach($alert_device_t

php - 如何在 php 中将一个巨大的整数转换为十六进制?

我如何转换它:9312660682897061594767289296453011313180604726492752614962349778735928598708212386406555876878916185094145420038141655929349984786756296776268556142401047以16进制?我找到了这个递归函数:functionbcdechex($dec){$last=bcmod($dec,16);$remain=bcdiv(bcsub($dec,$last),16);if($remain==0){returndechex($last);}el

php - 如何在 PHP 中将数据的十六进制表示形式转换为二进制数据?

我熟悉php的函数bin2hex(),用于将二进制数据转换为其十六进制表示形式。但是,将数据的十六进制表示转换回二进制数据的补码函数是什么?例如:$foo="hello";$foo=bin2hex($foo);echo$foo;//Displays68656c6c6f如何将它变回“你好”?$foo="68656c6c6f";//Nowwhat?没有hex2bin()函数。 最佳答案 如果你看PHP'sbin2hexpage,有建议的解决方案,包括这个:$foo=pack("H*",$foo);echo$foo;还有多种hex2bin

java - 如何接收十六进制的套接字输入?

我用套接字发送了一条GET消息。我收到了字符串形式的响应消息。但我想以十六进制形式接收。但是我没有实现。这是我的代码块作为字符串。你能帮帮我吗?dos=newDataOutputStream(socket.getOutputStream());dis=newBufferedReader(newInputStreamReader(socket.getInputStream()));dos.write(requestMessage.getBytes());Stringdata="";StringBuildersb=newStringBuilder();while((data=dis.rea

java - 将十六进制转换为小端

将文本字段的值从十六进制转换为小端的公式是什么?示例输入:5A109061示例输出:1636831322 最佳答案 从EditText获取值作为String。使用Integer.parseInt(...)和基数16将字符串值解析为十六进制。翻转int的字节顺序,使用ByteBuffer(更简单)或使用位移位(更快)。例如:Stringhex="5A109061";//mEditText.getText().toString()//Parsehextointintvalue=Integer.parseInt(hex,16);//Fli