我正在创建公共包,有一些加密,我让开发人员选择密码类型和模式,并设置密码加密部分的包。 现在我需要在使用MCrypt函数之前检查密钥大小。 所以我必须知道的是:
1)密码的所有可能密钥大小。
2)给定密钥的字节大小。
或者如果你有更好的方法,请分享。
答案 0 :(得分:1)
mcrypt_list_algorithms()
为您提供密码列表mcrypt_module_get_supported_key_sizes($cipher)
为您提供支持的密钥大小(如果密钥大小是连续的,则为空)mcrypt_module_get_algo_key_size($cipher)
为您提供最大密钥大小,以防上一个函数返回任何内容所有密钥大小都以字节为单位。
示例:
$algorithms = mcrypt_list_algorithms();
foreach ($algorithms as $cipher) {
echo "$cipher:\n";
$keysizes = mcrypt_module_get_supported_key_sizes($cipher);
if (count($keysizes) == 0) {
$max = mcrypt_module_get_algo_key_size($cipher);
echo " max: $max\n";
} else {
foreach ($keysizes as $keysize) {
echo " $keysize\n";
}
}
echo "\n";
}
使用strlen($input)
检索给定字符串中的字节(应解码)。