完善身份证加密解密

main
yanzai 2 years ago
parent ec4a9be498
commit 3c5007dc49

@ -15,6 +15,12 @@ class HealthCheckupService
$firstDay = date('Y-01-01', strtotime($currentYear));
$lastDay = date('Y-12-31', strtotime($currentYear));
//HSM加密
$HSM_sfz =\App\Lib\HSM::HsmEncrypt($CheckupInfo['id_card_num']);
if($HSM_sfz['status']!=true){
return \Yz::echoError1('调用HSM加密失败');
}
$CheckupInfo['id_card_num']=$HSM_sfz['data'];
//如果此次报告内容是免费类型,则检查今年是否进行过免费体检
// if($CheckupInfo['fee_type']==0){
@ -37,6 +43,7 @@ class HealthCheckupService
// 执行数据库操作
// if($CheckupInfo['type']==1){
//如果体检类型为健康证 更新预约记录表
$u= DB::table('appointment_record')
->where([
'id_card_num'=>$CheckupInfo['id_card_num'],
@ -58,6 +65,17 @@ class HealthCheckupService
$img_url='/storage/'.$filePath;
}
if(isset($CheckupInfo['tel'])){
$HSM_tel =\App\Lib\HSM::HsmEncrypt($CheckupInfo['tel']);
if($HSM_tel['status']!=true){
return \Yz::echoError1('调用HSM加密失败');
}
$CheckupInfo['tel']=$HSM_tel['data'];
}
$Hmac=\App\Lib\HSM::Hmac($CheckupInfo['name'].$CheckupInfo['id_card_num'].$CheckupInfo['tel'].$CheckupInfo['result_status']);
if($Hmac['status']!=true){
return \Yz::echoError1('HMAC摘要失败');
}
$u2=DB::table('examination_records')->insertGetId([
"name"=>$CheckupInfo['name'],
@ -75,7 +93,8 @@ class HealthCheckupService
"result_status"=>$CheckupInfo['result_status'],
"issue_time"=>$CheckupInfo['issue_time'],
"expire_time"=>$CheckupInfo['expire_time'],
"pdfs"=>isset($CheckupInfo['pdfs'])?json_encode($CheckupInfo['pdfs']):''
"pdfs"=>isset($CheckupInfo['pdfs'])?json_encode($CheckupInfo['pdfs']):'',
'hmac'=>$Hmac['data'],
]);

@ -95,6 +95,11 @@ class OrganizationService
return \Yz::Return(false,'当前时间段预约已满');
}
$Hmac=\App\Lib\HSM::Hmac($cha_info[0]->name.$cha_info[0]->id_card_num.$info['org_id']);
if($Hmac['status']!=true){
return \Yz::echoError1('HMAC摘要失败');
}
//如果都通过则继续
DB::beginTransaction();
try {
@ -111,7 +116,8 @@ class OrganizationService
'doc_type_id'=>$info['doc_id'],
'doc_type_name'=>$info['doc_name'],
'org_id'=>$info['org_id'],
'status'=>1
'status'=>1,
'hmac'=>$Hmac['data'],
]
);
$file=array();

@ -23,6 +23,20 @@ class PersonService
$result['status']=false;
$result['msg']='已注册过,无需进行此操作';
}else{
//HSM加密
$HSM_sfz =\App\Lib\HSM::HsmEncrypt($arr['info']['sfz']);
if($HSM_sfz['status']!=true){
return \Yz::echoError1('调用HSM加密失败');
}
$arr['info']['sfz']=$HSM_sfz['data'];
if(isset($arr['info']['tel'])){
$HSM_tel =\App\Lib\HSM::HsmEncrypt($arr['info']['tel']);
if($HSM_tel['status']!=true){
return \Yz::echoError1('调用HSM加密失败');
}
$arr['info']['tel']=$HSM_tel['data'];
}
$i=DB::table('persons')->insert([
'name' => $arr['info']['name'],
'sex' => $arr['info']['sex'],
@ -88,6 +102,13 @@ class PersonService
//获取个人预约记录详情
public function GetAppointmentRecord($arr){
//HSM加密
$HSM_sfz =\App\Lib\HSM::HsmEncrypt($arr['id_num']);
if($HSM_sfz['status']!=true){
return \Yz::echoError1('调用HSM加密失败');
}
$arr['id_num']=$HSM_sfz['data'];
$cha = DB::select("SELECT a.*,b.sex,b.tel,b.status,c.org_name from appointment_record as a INNER JOIN
persons as b on a.person_id=b.id INNER JOIN medical_institution as c on a.org_id=c.id where a.id_card_num=?
and a.status=1",[$arr['id_num']]);

Loading…
Cancel
Save