我知道,我知道,类似的问题已经被问到了数百万和数十亿次,但由于大多数人都有不同的味道,我得到了自己的一个.
目前我正在开发一个旨在全国各地推出的网站,因此需要对用户系统进行某种保护.
我最近一直在阅读很多关于密码加密,散列,腌制......你说出来的名字,但在阅读了很多文章之后,我感到很困惑.
有人说简单的SHA512加密对于密码是足够的,其他人说无论你做什么都必须使用"盐",然后有人说你应该建立一个全新的密码加密机器,因为这样没有人能够得到它.
现在我正在使用hash_hmac();
SHA512,加密码获取随机SHA1盐和最后一部分,定义随机md5(); 键.对于我们大多数人来说,它听起来很安全,但是它呢?
我最近在这里看到,bcrypt();
(现在称为crypt();
Blowfish哈希)是最安全的方式.在阅读了关于crypt();
和相关内容的PHP手册之后,我很困惑.
基本上,问题是,我是否会hash_hmac();
击败Blowfished crypt();
,反之亦然?
还有一个,也许有更安全的密码散列选项?
我对如何创建自己的函数感兴趣,允许它在没有错误记录的情况下执行,但只有在使用@
运算符执行时才会这样做@function();
?
功能:
public function query($sql, $id = false){
$this->query_id = mysqli_query($this->connection, $sql);
if(!$this->query_id){
// I want to suppress this error call here...
psyo::error("Error while executing query (sql: {$sql}).");
return NULL;
}else{
$this->result = mysqli_store_result($this->connection);
$this->affected = mysqli_affected_rows($this->connection);
return $id ? $this->query_id : $this;
}
}
Run Code Online (Sandbox Code Playgroud)
PS我正在使用我自己的错误处理类,并且它不能用于操作error_log();
.
提前致谢!
有没有办法让当前迭代循环重复?
var repeated = false;
var total = 0;
for (var i = 0; i < 50; i++)
{
total += i;
if (i == 33 && !repeated)
{
repeated = true;
repeat; // imaginary
}
}
Run Code Online (Sandbox Code Playgroud) 我一边啃着在PHP插槽服务器和客户端的基础知识在这里.
然后我偶然发现了这些行(摘自上面链接的第一个例子,发生在里面while
):
if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($msgsock)) . "\n";
break 2;
}
if (!$buf = trim($buf)) {
continue;
}
Run Code Online (Sandbox Code Playgroud)
我对阅读部分没问题,并且在读取错误的情况下关闭连接.
但那接下来if
让我疯了.
首先,我对如何将一个值分配给布尔值感到困惑.
其次,我无法完全理解整个表达.
有人可以解释一下内部会发生什么,以及它如何应用于服务器上下文?
PS如果问题没有得到正确询问,请原谅.我对那里发生的事情感到困惑,不知道具体要求什么.
我不确定是否有这样的功能,但我希望它能做到以下几点:
搜索值的数组get_array_value($array, $chain);
在哪里$array
,$chain
是一个包含要检索的值的信息的数组.
用法示例:if $chain = array('key1', 'key2', 'key3');
,则该函数应返回$array['key1']['key2']['key3'];
那里有类似的东西,如果没有,我怎么能实现这个目标?
提前致谢!
嗯,预期的结果应该是单个值,而不是数组.所以我可以像使用它一样echo get_array_value($array, $chain);
基本上我在我的表中有一行,它具有以下格式的值 - 1,2,3,4,10,11,21,34
等等.
我正在使用LIKE语句检索值,但由于我正在使用它%<value>%
,因此在搜索1
时返回11,21,1等等.
如何限制它,基于一个返回值?
看起来我之前的问题更新没有被注意到,因此是一个新问题.
#dump1
var_dump('two identical strings' | 'two identical strings'); # mind the |
// string(21) "two identical strings"
#dump2
var_dump('two identical strings' ^ 'two identical strings'); # mind the ^
// string(21) ""
Run Code Online (Sandbox Code Playgroud)
为什么#dump2
显示长度== 21,但输出无/不可见符号?
另外,当粘贴在Notepad ++中时,该字符串中没有21个符号的迹象,实际上,甚至不是1个符号,而不是来自不同字符串的不同操作的输出.
这些(DC3)
,(DC4)
等没有在浏览器中显示,但在记事本中显示出来++.
哦,实际上,那个字符串中的那些黑色值是什么?我猜这些是位级/汇编级别的值,但是,呵呵,guess !== true
.
>>> x = { 'a' : 'b' , 'c' : 'd' }
>>>'a' and 'c' in x
True
>>>'a' and 'b' in x
False
>>>'b' and 'c' in x
True
Run Code Online (Sandbox Code Playgroud)
如果in <dict>
钥匙检查,怎么来的最后一个看起来最多b
的回报true
,即使没有这样的关键b
?
在使用Laravel框架时,更具体的 - 表单宏,我偶然发现了一个奇怪的错误.
起初,我认为Laravel有点不对劲,但后来我把所有东西都脱离了背景:
<?php
// placeholder function that takes variable as reference
$function = function(&$reference)
{
// append to variable
$reference = $reference . ':' . __METHOD__;
};
// test with straight call
$variable = 'something';
$function($variable);
echo $variable;
// test with call_user_func(), that gets called in Laravels case
$variable = 'something'; // reset
call_user_func($function, $variable);
echo $variable;
Run Code Online (Sandbox Code Playgroud)
第一次$function
正确执行调用时,第二次尝试使用call_user_func()
,生成(摘自Codepad):
Warning: Parameter 1 to {closure}() expected to be a reference, value given
PHP Warning: Parameter 1 …
Run Code Online (Sandbox Code Playgroud) 我在PHP中使用标志检测时遇到问题.
<?php
class event
{
const click = 0x1;
const mouseover = 0x2;
const mouseenter = 0x4;
const mouseout = 0x8;
const mouseleave = 0x16;
const doubleclick = 0x32;
public static function resolve($flags)
{
$_flags = array();
if ($flags & self::click) $_flags[] = 'click';
if ($flags & self::mouseover) $_flags[] = 'mouseover';
if ($flags & self::mouseenter) $_flags[] = 'mouseenter';
if ($flags & self::mouseout) $_flags[] = 'mouseout';
if ($flags & self::mouseleave) $_flags[] = 'mouseleave';
return $_flags;
}
}
var_dump(event::resolve(event::click | event::mouseleave));
var_dump(event::resolve(event::mouseleave)); …
Run Code Online (Sandbox Code Playgroud) php ×7
function ×2
arrays ×1
encryption ×1
flags ×1
hash ×1
if-statement ×1
javascript ×1
loops ×1
mysql ×1
passwords ×1
python ×1
reference ×1
sql-like ×1