我正在尝试为我的网站创建一个函数,如果它存在,它将从cookie返回一个值,否则返回false。该函数不返回false或cookie值。它返回的内容等于空字符串。
function getCookie($cookiename){
if(!isset($_COOKIE[ crypto::encrypt($cookiename, 'info') ])){ return false; }
return $_COOKIE[ crypto::encrypt($cookiename, 'info') ];
}
现在,如果我要创建名为testcookie
的Cookie,则在加密时它将显示为83Jdn3idsf93Jdnfh234ksadnu3234
。 Cookie由加密名称和加密值组成。
// Now if I would call the function like this:
if(getCookie("testcookie") !== false){
echo getCookie("testcookie");
}
使用该功能时,名称将加密为加密名称。我检查过并确保cookie存在。所以不要担心,请不要评论“cookie是否存在?”
谢谢!
编辑:加密是我自己的加密和解密类库。我只是解密我的饼干..正如我上面解释的那样。 (基本上就像md5一样,我自己的算法)
编辑:什么是加密库,它有什么作用?
这只是一种轻松加密的方法,我该怎么称呼它?
crypto::encrypt(string $string, string $method){
return $encrypted;
}
echo crypto::encrypt("EncryptMe", "info");
// Will output: Tt9ztswTYo2mlQi0rOI1C2F1UFRfiJTfsOLcNvNfhJteRTg75Vlk+j19AYuPqLxT
答案 0 :(得分:0)
您不清楚自己要做什么,因为您似乎使用的是非标准库(crypto
)并且没有给我们参考它是什么。
假设您正在使用所谓的" defuse/php-encryption"库,那么问题很可能是你提供了一个字符串("info"
)作为Crypto::encrypt()
的关键,这是不对的 - Crypto::encrypt()
以{{{{}}的形式获取一个键1}},你的编译器应该警告过你。
如果您想使用密码加密(即清除呼叫"密码"错误),则应拨打Defuse\Crypto\Key
。
另外,请注意加密是一项高度CPU密集型操作,并且不必要地执行加密也不是一个好主意。在您的代码中,您使用完全相同的参数调用Crypto::encryptWithPassword()
两次。最好先调用一次,将结果存储在一个变量中,然后在所有其他地方使用该变量。