我正在尝试使用Laravel加密的用户名和密码进行跨域ajax调用,但我无法找到找到Crypt :: encrypt操作期间生成的IV字符串的方法。找到那个最好的方法是什么?
更新(添加代码):
$encUsername = Crypt::encrypt($username);
$encPassword = Crypt::encrypt($password);
JavaScript::put([
'username' => $encUsername,
'password' => $encPassword
]);
答案 0 :(得分:2)
查看source code,encrypt()
的结果是base64编码的JSON数据:
$iv = random_bytes($this->getIvSize());
$value = \openssl_encrypt(serialize($value), $this->cipher, $this->key, 0, $iv);
// ...
$mac = $this->hash($iv = base64_encode($iv), $value);
$json = json_encode(compact('iv', 'value', 'mac'));
// ...
return base64_encode($json);
您需要base64_decode
和json_decode
值,然后使用iv
键。