属性 |
值 |
命名空间 |
fize\security |
类名 |
Hash |
构造
public function __construct (
string $algo,
int $options = 0,
string $key = null
)
参数: |
名称
|
说明
|
algo
|
要使用的哈希算法名称
|
options
|
进行哈希运算的可选设置
|
key
|
当 options 参数为 HASH_HMAC 时
|
|
参数 `$algo` :
例如:"md5","sha256","haval160,4" 等
参数 `$options` :
目前仅支持一个选项:HASH_HMAC
参数 `$key` :
使用此参数传入进行 HMAC 哈希运算时的共享密钥。
返回已注册的哈希算法列表
public static function algos () : array
拷贝当前哈希运算上下文
public function copy (
bool $clone = true
) : mixed
参数 `$clone` :
如果 $clone 为 true 则返回的是克隆的 Hash 类而非哈希运算上下文
可防止时序攻击的字符串比较
public static function equals (
string $known_string,
string $user_string
) : bool
参数: |
名称
|
说明
|
known_string
|
已知长度的、要参与比较的字符串
|
user_string
|
用户提供的字符串
|
|
非常重要的一点是,用户提供的字符串必须是第二个参数。
使用给定文件的内容生成哈希值
public static function file (
string $algo,
string $filename,
bool $raw_output = false
) : string
参数: |
名称
|
说明
|
algo
|
要使用的哈希算法的名称
|
filename
|
要进行哈希运算的文件路径
|
raw_output
|
是否输出格式为原始的二进制数据
|
|
参数 `$algo` :
例如:"md5","sha256","haval160,4" 等。
参数 `$filename` :
支持 fopen 封装器。
参数 `$raw_output` :
设置为 TRUE,输出格式为原始的二进制数据。 设置为 FALSE,输出小写的 16 进制字符串。
结束增量哈希,并且返回摘要结果
public function final (
bool $raw_output = false
) : string
参数: |
名称
|
说明
|
raw_output
|
是否输出格式为原始的二进制数据
|
|
参数 `$raw_output` :
设置为 TRUE,输出格式为原始的二进制数据。 设置为 FALSE,输出小写的 16 进制字符串。
使用 HMAC 方法和给定文件的内容生成带密钥的哈希值
public static function hmacFile (
string $algo,
string $filename,
string $key,
bool $raw_output = false
) : string
参数: |
名称
|
说明
|
algo
|
要使用的哈希算法的名称
|
filename
|
要进行哈希运算的文件路径
|
key
|
使用 HMAC 生成信息摘要时所使用的密钥。
|
raw_output
|
是否输出格式为原始的二进制数据
|
|
参数 `$algo` :
例如:"md5","sha256","haval160,4" 等.
参数 `$filename` :
支持 fopen 封装器。
参数 `$raw_output` :
设置为 TRUE,输出格式为原始的二进制数据。 设置为 FALSE,输出小写的 16 进制字符串。
使用 HMAC 方法生成带有密钥的哈希值
public static function hmac (
string $algo,
string $data,
string $key,
bool $raw_output = false
) : string
参数: |
名称
|
说明
|
algo
|
要使用的哈希算法的名称
|
data
|
要进行哈希运算的消息。
|
key
|
使用 HMAC 生成信息摘要时所使用的密钥。
|
raw_output
|
是否输出格式为原始的二进制数据
|
|
参数 `$algo` :
例如:"md5","sha256","haval160,4" 等。
参数 `$raw_output` :
设置为 TRUE,输出格式为原始的二进制数据。 设置为 FALSE,输出小写的 16 进制字符串。
初始化增量哈希运算上下文
public static function init (
string $algo,
int $options = 0,
string $key = null
) : resource
参数: |
名称
|
说明
|
algo
|
要使用的哈希算法名称
|
options
|
进行哈希运算的可选设置
|
key
|
进行 HMAC 哈希运算时的共享密钥。
|
|
返回值: | 返回哈希运算上下文资源
|
参数 `$algo` :
例如:"md5","sha256","haval160,4" 等。
参数 `$options` :
目前仅支持一个选项:HASH_HMAC
参数 `$key` :
当 options 参数为 HASH_HMAC 时, 使用此参数传入进行 HMAC 哈希运算时的共享密钥。
生成所提供密码的 PBKDF2 密钥导出
public static function pbkdf2 (
string $algo,
string $password,
string $salt,
int $iterations,
int $length = 0,
bool $raw_output = false
) : string
参数: |
名称
|
说明
|
algo
|
哈希算法名称
|
password
|
要进行导出的密码
|
salt
|
进行导出时所使用的“盐”
|
iterations
|
进行导出时的迭代次数
|
length
|
密钥导出数据的长度
|
raw_output
|
是否输出格式为原始的二进制数据
|
|
参数 `$algo` :
例如:"md5","sha256","haval160,4" 等。
参数 `$salt` :
这个值应该是随机生成的。
参数 `$length` :
默认0,则使用所选算法的完整输出大小。
参数 `$raw_output` :
设置为 TRUE,输出格式为原始的二进制数据。 设置为 FALSE,输出小写的 16 进制字符串。
从文件向活跃的哈希运算上下文中填充数据
public function updateFile (
string $filename,
resource $scontext = null
) : bool
参数: |
名称
|
说明
|
filename
|
要进行哈希运算的文件路径
|
scontext
|
流上下文
|
|
参数 `$filename` :
支持 fopen 封装器。
参数 `$scontext` :
由 stream_context_create() 函数返回的流上下文。
从打开的流向活跃的哈希运算上下文中填充数据
public function updateStream (
resource $handle,
int $length = -1
) : int
参数: |
名称
|
说明
|
handle
|
创建流的函数返回的打开的文件句柄
|
length
|
要从 handle 向活跃的哈希运算上下文中拷贝的最大字符数
|
|
返回值: | 从 handle 向哈希运算上下文中实际填充的字节数量
|
参数 `$length` :
-1 表示全部返回。
向活跃的哈希运算上下文中填充数据
public function update (
string $data
) : bool