我使用Crackstation.net的PHP源代码进行哈希和盐析密码。
https://crackstation.net/hashing-security.htm#phpsourcecode
为了便于使用,我正试图将这些代码放在类中。
我想我可以用代码顶部的额外一行"classPasswordHasher{"和一个漂亮的右括号来完成
<?php
class PasswordHasher{
// These constants may be changed without breaking existing hashes.
define("PBKDF2_HASH_ALGORITHM", "sha256");
define("PBKDF2_ITERATIONS", 1000);
define("PBKDF2_SALT_BYTE_SIZE", 24);
define("PBKDF2_HASH_BYTE_SIZE", 24);
define("HASH_SECTIONS", 4);
define("HASH_ALGORITHM_INDEX", 0);
define("HASH_ITERATION_INDEX", 1);
define("HASH_SALT_INDEX", 2);
define("HASH_PBKDF2_INDEX", 3);
//all functions from the URL source
}
?>
出于某种原因,Netbeans不希望我在类中以这种方式使用define关键字。如果我在类decoration上面有所有的define行,那么我不会从Netbeans中得到任何语法错误。我是PHP的新手,我找不到这种行为的原因。我做错了什么?如何将此源代码转换为OO编程类?
尝试类的const
:
const PBKDF2_HASH_ALGORITHM = "sha256";
您试图在class
内部执行代码,超出方法的边界。
class foo {
$bar = 1 + 1; // illegal - not in a method
function baz() {
$this->bar = 1 + 1; // legal, inside a method.
}
}