更新数据库加密相关操作

This commit is contained in:
2025-01-18 09:44:50 +08:00
parent b422830708
commit 7a42b01aed

View File

@@ -27,11 +27,11 @@ class BaseActiveRecord extends ActiveRecord
{
if (parent::beforeSave($insert)) {
// 加密ID卡信息之前检查是否已经加密过
if (!empty($this->idcard) && !is_encrypted($this->idcard)) {
if (!empty($this->idcard) && !$this->is_encrypted($this->idcard)) {
$this->idcard = (new DataEncryptor(\Yii::$app->params['ase_key']))->encrypt($this->idcard);
}
// 加密ID卡信息之前检查是否已经加密过
if (!empty($this->id_card) && !is_encrypted($this->id_card)) {
if (!empty($this->id_card) && !$this->is_encrypted($this->id_card)) {
$this->id_card = (new DataEncryptor(\Yii::$app->params['ase_key']))->encrypt($this->id_card);
}
return true;
@@ -43,11 +43,20 @@ class BaseActiveRecord extends ActiveRecord
{
parent::afterFind();
// 解密ID卡信息之前检查是否已经是明文
if (!empty($this->id_card) && is_encrypted($this->id_card)) {
if (!empty($this->id_card) && $this->is_encrypted($this->id_card)) {
$this->id_card = (new DataEncryptor(Yii::$app->params['ase_key']))->decrypt($this->id_card);
}
if (!empty($this->idcard) && is_encrypted($this->idcard)) {
if (!empty($this->idcard) && $this->is_encrypted($this->idcard)) {
$this->idcard = (new DataEncryptor(Yii::$app->params['ase_key']))->decrypt($this->idcard);
}
}
private function is_encrypted($data): bool
{
if (!is_string($data)) {
return false;
}
// 这里应该有逻辑来判断$data是否已经被加密。未加密是true
return strpos($data, 'xk_ase_256_') === 0;
}
}