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

Getting all possible key sizes for PHP MCrypt Ciphers

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

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

2) 给定键的字节大小。

或者你有更好的方法欢迎分享

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