我想用Zend_Filter_Encrypt函數對某些數據做一些對稱加密。問題是如果我加密一些數據然後解密它,解密數據後面有空字節,我不知道爲什麼。Zend Filter Encryption/Decryption在解密時添加空字節
例如: 明文:測試加密:PK解密的:測試
這似乎是在解密文本的結尾填充nullbytes使它的長度等於一些2^n(11個字符的字符串被填充以適合16 => 2^4)。最明顯的情況是將這些字符去掉,但我想知道爲什麼會發生這種情況...
這是我使用的代碼,與文檔要求你做它的方式不同,因爲它們代碼只是不爲我工作(見:http://framework.zend.com/manual/en/zend.filter.set.html)
define('VECTOR','EXfPCW23'); //example, not the actual used VECTOR/KEY
$key = 'lolwatlolwat';
public function encryptPassword($password, $key)
{
$filter = new Zend_Filter_Encrypt();
$filter->setEncryption(array('key' => $key));
$filter->setVector(VECTOR);
return $filter->filter($password);
}
public function decryptPassword($password, $key)
{
$filter = new Zend_Filter_Decrypt();
$filter->setEncryption(array('key' => $key));
$filter->setVector(VECTOR);
return $filter->filter($password);
}
嗯我剛剛意識到「測試」是4個字符是2^2所以現在我完全不明白._。 – shokora