我正在创建一个API POST请求,但是我想对一些用户输入(referenceID和phone_no)进行哈希处理,并使用SHA512保存到哈希字段中。我想把它放在控制器中。
我已经创建了模型类和控制器
型号
protected $fillable = [
'referenceID' ,
'phone_no',
'hash'
];
控制器
public function store(Request $request)
{
$request->validate([
'referenceID' => 'required',
'phone_no' => 'required',
'hash' => 'required'
]);
$valrequest = Task::create($request->all());
return response()->json([
'message' => 'Great success! New validation request created',
'valrequest' => $valrequest, 201
]);
}
我想对用户输入(referenceID和phone_no)进行哈希处理,并使用SHA512保存到哈希字段中。我想把它放在控制器中。我该怎么做。
答案 0 :(得分:0)
应该可以这样工作,但是代码根本没有经过测试,并且有大约一百万种不同的方法可以执行此操作。您无需验证哈希,因为它不需要用户输入。
public function store(Request $request)
{
$request->validate([
'referenceID' => 'required',
'phone_no' => 'required',
]);
$referenceID = $request->referenceID;
$phone_no = $request->phone_no;
$hash = hash('sha512', $referenceID . $phone_no);
$valrequest = Task::create(compact('referenceID', 'phone_no', 'hash'));
return response()->json([
'message' => 'Great success! New validation request created',
'valrequest' => $valrequest, 201
]);
}
答案 1 :(得分:0)
Laravel哈希提供Bcrypt和Argon2哈希。如果要使用sha512,则应使用php哈希函数。 hash("sha512","your string");