我正在为我的网站开发一个使用Laravel 4的私人消息系统,并且我想确保消息保持私密。到目前为止,我有以下的代码写成:如何加密和存储私人消息?
class PkeyEncryption {
public static function encrypt($input, $cipher = MCRYPT_RIJNDAEL_128) {
$key = sha1(microtime(true) . mt_rand(10000, 90000));
$iv_size = mcrypt_get_size($cipher, MCRYPT_MODE_CFB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
return mcrypt_encrypt($cipher, $key, $input, MCRYPT_MODE_CFB, $iv);
}
public static function decrypt($data, $key, $cipher = MCRYPT_RIJNDAEL_128) {
$iv = $data['iv'];
$data = $data['data'];
return mcrypt_decrypt($cipher, $key, $data, MCRYPT_MODE_CFB, $iv);
}
}
所以,我知道如何的信息进行加密,并且我也知道,我可以存储IV消息并肩作战。但是,我不知道我应该在哪里存储公钥。我已经在网站上阅读了其他一些问题,但我仍然没有找到答案。有人可以指点我正确的方向吗?
请注意,如果Web服务器可以访问解密信息(密钥和IV),那么攻击者也能够访问它。 – cdhowie 2014-09-01 21:40:43
存储关键客户端(例如,在cookie中?) – ferdynator 2014-09-01 21:43:40
因此,我可以将密钥存储在网站或其他服务器上吗? – 2014-09-01 21:44:04