我正在使用Crackstation.net的PHP源代码来进行哈希+ salting密码。
https://crackstation.net/hashing-security.htm#phpsourcecode
我正在尝试将此代码放在一个类中,以方便使用。
我想我可以使用代码顶部的额外行“class PasswordHasher {”和一个很好的结束括号来完成它。
<?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关键字。如果我在类decleration之上有所有的定义行,我不会从Netbeans得到任何语法错误。我是PHP的新手,我找不到这种行为的原因。我做错了什么,如何将此源代码转换为OO编程类?
答案 0 :(得分:1)
尝试const
课程:
const PBKDF2_HASH_ALGORITHM = "sha256";
答案 1 :(得分:0)
您正尝试在方法范围的class
,OUTSIDE内执行代码。
class foo {
$bar = 1 + 1; // illegal - not in a method
function baz() {
$this->bar = 1 + 1; // legal, inside a method.
}
}