Странная ошибка шифрования Laravel EncryptString

Я столкнулся с действительно странной ошибкой с функцией Laravel EncryptString, любопытно, есть ли у кого-нибудь идеи, что не так.

По сути, я шифрую электронную почту в PHP с помощью Laravel, а затем расшифровываю как Laravel, так и Python. Код Laravel, кажется, работает нормально, и код Python отлично работает для 99% моих тестовых случаев, НО он вылетает всякий раз, когда я использую свое собственное доменное имя в шифруемой электронной почте.

Мой код:

public function encryptEmail(Request $request) {
if (!Auth::check() && !Auth::viaRemember()) {
return redirect()->to('/login');
}
$this->validate($request, [
'email' => 'bail|required|email',
]);
$emailToEncrypt = $request->request->get('email');
$encryptedEmail = Crypt::encryptString($emailToEncrypt);
$email = Emails::where('accountId', Auth::id())->first();
$email->val = $encryptedEmail;
$email->save();

Эта проблема:
Все работает нормально, когда я шифрую электронную почту НЕ с моего собственного домена, на котором работает веб-сервер.

Пример:

 string in form           decrypt PHP          decrypt Python
'test@gmail.com' =>     'test@gmail.com',    'test@gmail.com'
'myEmail@icloud.com' => 'myEmail@icloud.com' 'myEmail@icloud.com'
'other@hotmail.com' =>  'other@hotmail.com'  'other@hotmail.com'
'me@mydomain.com' =>    'me@mydomain.com'    'me@my'

Как вы можете видеть, кажется, что, как только он попадает в мой домен, кажется, что шифрование строк отключено, я проверил, что вся строка передается в EncryptString, так что на самом деле не уверен, что заставит код Python давать сбой письма с нашим доменом.

У кого-нибудь есть идеи?

РЕДАКТИРОВАТЬ:

Код Python, где enc — зашифрованные данные Laravel

def decrypt(enc):
key = base64.b64decode("MyKey=")
dataDict = json.loads(base64.b64decode(enc))

decrypter = AES.new(key, AES.MODE_CBC, base64.b64decode(dataDict['iv']))
data = decrypter.decrypt(base64.b64decode(dataDict['value']))

try:
print(data.decode())
return data.decode()
except Exception as e:
return None

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector