Laravel 5.23에서 작성한 앱이 있습니다.Laravel 5.3 & Crypt - 유효하지 않은 페이로드
'Crypt' => Illuminate\Support\Facades\Crypt::class,
필드의 마이그레이션은 다음과 같습니다 :이 작업을 수행 할 클래스에서 설정 뮤 테이터가
$table->string('field_account_name')->nullable();
: 내가 사용 테이블에 저장하기 전에 나는 어떤 민감한 사용자 데이터를 암호화하고
public function getFieldAccountNameClearAttribute($value)
{
if ($this->field_account_name) {
try {
return Crypt::decrypt($this->field_account_name);
} catch (DecryptException $e) {
return 'INVALID';
}
} else {
return $this->field_account_name;
}
}
및
public function setFieldAccountNameClearAttribute($value)
{
$this->attributes['field_account_name'] = Crypt::encrypt($value);
}
이 완벽하게 오랫동안 일하고있다하지만 사용자는 일주일 전에 마법을 포기하고 트리거 :
Exception 'ErrorException' with message 'The payload is invalid
나는대로 현장에서 (예 : '
로) 특수 문자를 배치하여 문제를 복제하는 데 성공했다 공백이있는 긴 문자열의 일부.
날짜가 암호화되고 저장되지만 검색 할 때 실패합니다.
문자가 있습니까? 이것을 방지하려면 프런트 엔드에서 암호화를 제외해야합니까? 이것에 대한 답을 찾을 수 없습니다.
필드가 문자열 대신 text
일까요?
당신은 감사 대신 varchar' –