相关疑难解决方法(0)

如何安全存储用户密码?

这比普通MD5更安全吗?我刚刚开始研究密码安全性.我是PHP的新手.

$salt = 'csdnfgksdgojnmfnb';

$password = md5($salt.$_POST['password']);
$result = mysql_query("SELECT id FROM users
                       WHERE username = '".mysql_real_escape_string($_POST['username'])."'
                       AND password = '$password'");

if (mysql_num_rows($result) < 1) {
    /* Access denied */
    echo "The username or password you entered is incorrect.";
} 
else {
    $_SESSION['id'] = mysql_result($result, 0, 'id');
    #header("Location: ./");
    echo "Hello $_SESSION[id]!";
}
Run Code Online (Sandbox Code Playgroud)

php security passwords salt password-hash

168
推荐指数
4
解决办法
6万
查看次数

Salt Generation和开源软件

据我了解,生成盐的最佳做法是使用源代码中存储的一些神秘公式(甚至魔术常量).

我正在研究一个我们打算作为开源发布的项目,但问题是源代码是生成盐的秘密公式,因此能够在我们的网站上运行彩虹表攻击.

我认为很多人在我面前都考虑过这个问题,我想知道最佳做法是什么.在我看来,如果代码是开源的话,根本就没有盐,因为盐可以很容易地进行逆向工程.

思考?

security encryption open-source salt rainbowtable

70
推荐指数
3
解决办法
2万
查看次数

Git加密中的不良加密实践?

关于https://gist.github.com/shadowhand/873637状态的评论

“ ECB模式加密是一种相对简单的加密方法,它提供了高级别的混淆(或低级别的加密)。这种方法不是很安全,不应该用于敏感的个人数据,但是可以很好地用于例如。在公共通道之间的私人团体之间传输源代码。为了提高安全性,您可以将模式切换为CBC,但要以每次修改完全更改每个文件为代价。与所有加密一样,始终建议使用强密钥。”

“这是功能正确加密的定义的一部分(ECB(单击此处以获取解释)),这是有缺陷的传统实现,恰恰是今天没有人推荐使用的,并且仅在OpenSSL中受支持,因为OpenSSL支持一些非常老旧的协议。令人毛骨悚然的旧式加密实现!仅在今天作为学习工具才有用,切勿在当前系统中使用。

OFB模式的CBC应该是默认值-请考虑更改使用CBC的要旨,并为那些希望接受安全性损失以方便git的人解释ECB的潜在好处以及缺点。默认情况下,没有什么不安全的!”

http://git.661346.n2.nabble.com/Transparently-encrypt-repository-contents-with-GPG-td2470145.html但是指出,对CBC使用定值盐是不好的加密实践。如果我们将模式切换为CBC(对于https://gist.github.com/shadowhand/873637https://github.com/shadowhand/git-encrypt),它将使用固定值的盐,因此是不好的加密实践吗?

(我还将这个问题作为评论发布在https://gist.github.com/shadowhand/873637上

git encryption cryptography gnupg cbc-mode

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