2014-10-02 58 views
0

我有一个剧本叫谁在文件中的关键,我希望它具有可变包功能整合,但不起作用变量,包功能(“C *”,

=> keyfile.txt

100,102,52,57,49,51,49,51,48,49,101,102,97,99,49,52,57,56,102,57,53,99,99,49,98,97,57,98,51,48,99,99 

集成在php文件

$open = fopen("php\key\keyfile.txt", "r"); 
    $clef=fgets($open,255); 
    $td = mcrypt_module_open('rijndael-128', '', 'ecb', ''); 
    $iv = str_repeat("\x00", 16); 

    $key = pack("C*",$clef); ## **not working** 

    $key = $key . str_repeat("\x00", 32 - strlen($key)); 
    mcrypt_generic_init($td, $key, $iv); 
    $key = mcrypt_generic($td, $key); 
    $key = str_repeat(substr($key, 0, 16), 2); 
    mcrypt_generic_deinit($td); 

我不知道为什么 请帮

+4

*如果你说 “PLZ”,因为它比“please”短,我会说“不”,因为它比“yes”*短。 - [geowa4](http://stackoverflow.com/users/50214/geowa4)。 – h2ooooooo 2014-10-02 12:19:54

+0

更改完成,对不起! – 2014-10-02 12:56:01

回答

0

PHP认为像这样的方式:

$key = pack("C*", "100,102..."); 

的这个代替:

$key = pack("C*", 100,102,...); 

您可以使用call_user_func_array()得到你想要的东西:

$chr = "C*"; 
$int = explode(',', $clef); 

$key = call_user_func_array('pack', array_merge(array($chr), $int)); 
+0

OMG我已经完全伪造这个功能<3你是我的上帝 – 2014-10-02 12:24:38