小编jol*_*olt的帖子

密码和不同类型的加密

我知道,我知道,类似的问题已经被问到了数百万和数十亿次,但由于大多数人都有不同的味道,我得到了自己的一个.

目前我正在开发一个旨在全国各地推出的网站,因此需要对用户系统进行某种保护.

我最近一直在阅读很多关于密码加密,散列,腌制......你说出来的名字,但在阅读了很多文章之后,我感到很困惑.

有人说简单的SHA512加密对于密码是足够的,其他人说无论你做什么都必须使用"盐",然后有人说你应该建立一个全新的密码加密机器,因为这样没有人能够得到它.

现在我正在使用hash_hmac();SHA512,加密码获取随机SHA1盐和最后一部分,定义随机md5(); 键.对于我们大多数人来说,它听起来很安全,但是它呢?
我最近在这里看到,bcrypt();(现在称为crypt();Blowfish哈希)是最安全的方式.在阅读了关于crypt();和相关内容的PHP手册之后,我很困惑.

基本上,问题是,我是否会hash_hmac();击败Blowfished crypt();,反之亦然?

还有一个,也许有更安全的密码散列选项?

encryption passwords hash

2
推荐指数
1
解决办法
9032
查看次数

允许使用@进行错误抑制的功能

我对如何创建自己的函数感兴趣,允许它在没有错误记录的情况下执行,但只有在使用@运算符执行时才会这样做@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();.

提前致谢!

php error-handling function

2
推荐指数
1
解决办法
292
查看次数

使当前迭代重复自身

有没有办法让当前迭代循环重复?

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)

javascript loops

2
推荐指数
1
解决办法
2401
查看次数

!$ variable = $ variable if if

我一边啃着在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如果问题没有得到正确询问,请原谅.我对那里发生的事情感到困惑,不知道具体要求什么.

php if-statement

2
推荐指数
1
解决办法
161
查看次数

如何动态获取数组值

我不确定是否有这样的功能,但我希望它能做到以下几点: 搜索值的数组get_array_value($array, $chain);在哪里$array,$chain是一个包含要检索的值的信息的数组.

用法示例:if $chain = array('key1', 'key2', 'key3');,则该函数应返回$array['key1']['key2']['key3'];

那里有类似的东西,如果没有,我怎么能实现这个目标?

提前致谢!

更新:

嗯,预期的结果应该是单个值,而不是数组.所以我可以像使用它一样echo get_array_value($array, $chain);

php arrays

1
推荐指数
1
解决办法
1770
查看次数

MySQL LIKE限制

基本上我在我的表中有一行,它具有以下格式的值 - 1,2,3,4,10,11,21,34等等.

我正在使用LIKE语句检索值,但由于我正在使用它%<value>%,因此在搜索1时返回11,21,1等等.

如何限制它,基于一个返回值?

php mysql sql-like

1
推荐指数
1
解决办法
90
查看次数

按位运算结果,输出时出现奇怪的行为

看起来我之前的问题更新没有被注意到,因此是一个新问题.

#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.

提前致谢!

php bitwise-operators

1
推荐指数
1
解决办法
528
查看次数

dict中var的奇怪行为

>>> 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

python

1
推荐指数
2
解决办法
66
查看次数

PHP匿名函数变量作为参考

在使用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 reference function anonymous-function

1
推荐指数
1
解决办法
3948
查看次数

按位标志检测

我在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 flags bit-manipulation

1
推荐指数
1
解决办法
167
查看次数