【问题标题】:I can't get my php encryption to work我无法让我的 php 加密工作
【发布时间】:2026-01-14 15:00:02
【问题描述】:

该脚本旨在加密密码,因此在其上使用彩虹表要困难得多,因为人们无法轻易破解服务器,但我似乎无法让它工作,所以我希望你们中的一个可以提供帮助我。

<?php

function enc($string){
    $salt = "randomsalt";
    $hash = sha1(md5($salt.$string)) . $md5($string) . sha1(md5(md5($string)));
    return $hash;   
}

echo enc('password');

?>

【问题讨论】:

  • 你的意思是它不起作用?它有什么作用,您希望它做什么?
  • 哈希 != 加密
  • SHA1 和 MD5 都坏了。使用 bcrypt。
  • 您必须为每个用户使用不同的盐。
  • 双重\三重哈希使其安全性降低而不是更多

标签: php function encryption salt


【解决方案1】:

听听cmets,但你也有错别字:

$md5($string) 必须是 md5($string)(它不是变量,它前面不应该有 $)。

您确实没有在这里加密,但这只是一个命名问题(您正在对其进行哈希处理,这就是您想要做的)......但是,您的盐可能不应该是一个固定的字符串。 .. 如果你真的想要一个强哈希,它应该因用户而异。关于这个主题还有很多话要说(md5SHA1 不是密码的最佳哈希算法,因为两者都有太多的彩虹表,而且它们执行起来太快),但你可以阅读herehere for bcrypt info

【讨论】:

    【解决方案2】:
    $md5( $string)
    

    破坏您的代码。删除 $

    您应该为所有用户使用 bcrypt 和不同的盐之类的东西。

    【讨论】:

    • 谢谢你,伙计。我没看到你写的。我是新来的,呵呵:)