获取PHP MCrypt密码的所有可能密钥大小

时间:2015-06-18 09:19:45

标签: php encryption mcrypt

我正在创建公共包,有一些加密,我让开发人员选择密码类型和模式,并设置密码加密部分的包。 现在我需要在使用MCrypt函数之前检查密钥大小。 所以我必须知道的是:

1)密码的所有可能密钥大小。

2)给定密钥的字节大小。

或者如果你有更好的方法,请分享。

1 个答案:

答案 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)检索给定字符串中的字节(应解码)。