Непоследовательное дешифрование в React данных, зашифрованных в Laravel специальными символамиPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Непоследовательное дешифрование в React данных, зашифрованных в Laravel специальными символами

Сообщение Anonymous »

Я столкнулся с проблемами при расшифровке данных в моем интерфейсе React, которые были зашифрованы в моем серверном интерфейсе Laravel. Расшифровка иногда работает, но иногда терпит неудачу, особенно если данные содержат специальные символы, такие как подчеркивание _ .
В Laravel я использую встроенное шифрование класс для шифрования данных. Вот код Laravel для шифрования:

Код: Выделить всё

use Illuminate\Support\Facades\Crypt;

public function encryptData(Request $request) {
$data = $request->input('data');
$encryptedData = Crypt::encryptString($data);
return response()->json(['encryptedData' => $encryptedData]);
}

В React я использую crypto-js для расшифровки данных. Вот код, который я использую:

Код: Выделить всё

import CryptoJS from 'crypto-js';

// Defining an interface for expected JSON structure in the encrypted data
interface EncryptedDataFormat {
iv: string;
value: string;
}

export const decryptData = (encryptedData: string, key: string): string | null => {
try {
// Base64 decode the encrypted data to get the JSON string
const b64 = CryptoJS.enc.Base64.parse(encryptedData);
const json: EncryptedDataFormat = JSON.parse(b64.toString(CryptoJS.enc.Utf8));

// Extract IV and ciphertext from the parsed JSON
const iv = CryptoJS.enc.Base64.parse(json.iv);
const cipherText = json.value;

// Decrypt the ciphertext using the provided key and IV
const decrypted = CryptoJS.AES.decrypt(cipherText, CryptoJS.enc.Base64.parse(key), {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7,
});

// Convert the decrypted data to a UTF-8 string
const decryptedString = decrypted.toString(CryptoJS.enc.Utf8);
if (decryptedString) {
return decryptedString;
}
console.error("Decryption was successful but no data could be extracted.");
return null;
} catch (error) {
console.error("Decryption failed:", error);
return null;
}
};
Несмотря на это, расшифровка работает непоследовательно, особенно когда в данные включены специальные символы, такие как подчеркивание ( _ ). Иногда он работает отлично, но иногда он дает сбой, возвращая нулевые или неверные данные.
Что может быть причиной этой несогласованности и как я могу обеспечить надежную расшифровку в React для данных, зашифрованных в Laravel?

Подробнее здесь: https://stackoverflow.com/questions/786 ... ecial-char
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Непоследовательное дешифрование в React данных, зашифрованных в Laravel специальными символами
    Anonymous » » в форуме Php
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Запрос к базе данных Laravel со специальными символами
    Гость » » в форуме Php
    0 Ответы
    50 Просмотры
    Последнее сообщение Гость
  • Как работать со специальными символами в кадре данных
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как работать со специальными символами в кадре данных
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Microsoft Excel заменяет длинное тире «–» специальными символами в файле CSV, созданном кодом Python.
    Anonymous » » в форуме Python
    0 Ответы
    117 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»