gpt4 book ai didi

php - ZendFramework - 如何使用带 bin2hex 和 hex2bin 的 Zend_Filter 进行加密和解密?

转载 作者:可可西里 更新时间:2023-10-31 23:33:55 29 4
gpt4 key购买 nike

当我进行编码时,我有这个随机的“d9b3b2d69bab862a”值。但我无法将其解码回 abcd。知道怎么做吗?

编码器/解码器运行:

$tokenIs = Application_Model_Login::getEnc("abcd");
echo $tokenIs . "<br/><br/>";
echo Application_Model_Login::getDec(hex2bin($tokenIs)); //hints: rawurldecode(..) works

采埃孚车型:

class Application_Model_Login
{
private $key = "thisisakeytolock";
private $vector= "myvector";

public static function getEnc($input)
{
$filter = new Zend_Filter_Encrypt(array('adapter' => 'mcrypt', 'key' => $key));
$filter->setVector($vector);
$encrypted = $filter->filter($input);
// bin2hex for user use case
return bin2hex($encrypted); //hints: rawurlencode(..) works
}

public static function getDec($input)
{

$filter = new Zend_Filter_Decrypt(array('adapter' => 'mcrypt', 'key' => $key));
$filter->setVector($this->vector);
$encrypted = $filter->filter($input);
return $encrypted;
}

}

最佳答案

如果您想使用 bin2hex 对二进制数据进行“编码”,以便通过 http/url 轻松传输它,您可以执行以下操作将其反转回二进制:

$encoded = bin2hex($some_binary);
$decoded = pack('H*', $encoded);

您的类(class)的其他小问题是对 $key$vector 的引用。由于这两个方法都是静态的,它们不能访问 $this 并且 $key$vector 单独是未定义的。

以下代码应该适合您:

class Application_Model_Login
{
const ENC_KEY = "thisisakeytolock";
const VECTOR = "myvector";

public static function getEnc($input)
{
$filter = new Zend_Filter_Encrypt(array('adapter' => 'mcrypt', 'key' => self::ENC_KEY));
$filter->setVector(self::VECTOR);
$encrypted = $filter->filter($input);
return bin2hex($encrypted); //hints: rawurlencode(..) works
return $encrypted;
}

public static function getDec($input)
{

$filter = new Zend_Filter_Decrypt(array('adapter' => 'mcrypt', 'key' => self::ENC_KEY));
$filter->setVector(self::VECTOR);
$decoded = pack('H*', $input);
$decrypted = $filter->filter($decoded);
return $decrypted;
}
}

或者,您可以使用 base64_encode在您的 getEnc 函数中,在 getDec 函数中使用 base64_decode。 Base64 通常用于表示加密后的二进制数据。

关于php - ZendFramework - 如何使用带 bin2hex 和 hex2bin 的 Zend_Filter 进行加密和解密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8596420/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com