在此代码中,我使用AES256算法进行加密和解密,我可以加密数据,但无法从数据库中解密。为什么?这段代码有问题。它在控制台中显示我是假的。基本上我得到错误:
$decrypted=openssl_decrypt($parts[0], $this->AES_256_CBC, $this->encryption_key, 0,$this->iv);
在这。但是,当我在相同的功能中,它正常工作。这段代码中是否存在一些问题?如果是,请帮助我。
public function add_users(Request $request){
$users = new User();
$users->name=$request->name;
$users->email = $request->email;
$users->password=$request->password;
$users->role=$request->role;
$encrypted = openssl_encrypt($users->name, $this->AES_256_CBC, $this->encryption_key, 0,$this->iv);
$encrypted1 = openssl_encrypt($users->email, $this->AES_256_CBC, $this->encryption_key, 0, $this->iv);
$encrypted2 = openssl_encrypt($users->password, $this->AES_256_CBC, $this->encryption_key, 0,$this->iv);
$encrypted3 = openssl_encrypt($users->role, $this->AES_256_CBC, $this->encryption_key, 0,$this->iv);
DB::insert('insert into users (name,email,password,role) values(?,?,?,?)',[$encrypted,$encrypted1,$encrypted2,$encrypted3]);
}
public function edit(Request $request){
$id = $request->id;
$user = User::where(['id' => $id])->get()->toArray();
$data = $user[0]['name'];
$data = $data . ':' . $this->iv;
$parts = explode(':', $data);
$decrypted=openssl_decrypt($parts[0], $this->AES_256_CBC, $this->encryption_key, 0,$this->iv);
dd($decrypted);
}