【发布时间】:2017-05-10 16:18:33
【问题描述】:
我尝试在 php 中实现 Crypt::encrypt 函数,这段代码在这里:
$key = "ygXa6pBJOWSAClY/J6SSVTjvJpMIiPAENiTMjBrcOGw=";
$iv = random_bytes(16);
$value = \openssl_encrypt(serialize('123456'), 'AES-256-CBC', $key, 0, $iv);
bIv = base64_encode($iv);
$mac = hash_hmac('sha256', $bIv.$value, $key);
$c = ['iv'=>$bIv,'value'=>$value,'mac'=>$mac];
$json = json_encode($c);
$b = base64_encode($json);
但结果是错误的。
我想在 openssl_encrypt 函数中设置之前我应该在 $key 上做一些事情。
请帮忙。
谢谢。
【问题讨论】:
-
亲爱的你能解释一下你的问题吗?不清楚你在问什么?
-
Crypt::encrypt('123456');我想在纯 php 中实现这个 laravel 函数。 @recoverymen
-
结果必须是这样的:eyJpdiI6Im1RT2pLeHEyNXRmRkFialdnYlFBU0E9PSIsInZhbHVlIjoiOGduRnRjSkFjbWhvQlNIWlNKZU1jdz09IiwibWFjIjoiNzdmM2FlNTJhZjU3NmYxYWNkZDQ4NmFjM2MzYjEyZTNjZDI5MGI0OWVhYmMzNmQ4Mzg4NTRhOGU3MzA1ZTE4NyJ9 跨度>
-
$key 在使用 encrypt 函数之前转换成如下内容:���I9d�V?'��U8�&���B$̌�8l���I9d�V?' ��U8�&���B$̌�8l 我不知道这个改变 $key 的函数是什么。
标签: php laravel encryption serialization hash