diff --git a/common/core/BaseActiveRecord.php b/common/core/BaseActiveRecord.php index cff35fe..92f3183 100644 --- a/common/core/BaseActiveRecord.php +++ b/common/core/BaseActiveRecord.php @@ -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; + } }