Я пытаюсь создать зашифрованные данные и сохранить их на сервере, а затем расшифровать. У меня проблема с substr
... Случай:
Str, созданный моей криптографической функцией:
uÛÀ0ÊydhÖà7yqê}X7hONüRéjÜÉq.NyÖaZÜdGK!Öhy|CGPOyqê}HïchFü.PjÜçêÈöoièféNÜ.... (260 chars)
Когда я пытаюсь расшифровать этот str сразу после создания (в браузере ):
let name = str.substr(0,25)
let occup = str.substr(25,35)
console.log(name+' = '+name.length) -> uÛÀ0ÊydhÖà7yqê}X7hONüRéjÜ = 25
console.log(occup+' = '+occup.length) -> Éq.NyÖaZÜdGK!Öhy|CGPOyqê}HïchFü.PjÜ = 35
Если я применю расшифровку al go к каждому подстрану, результаты будут ожидаемыми.
Зашифрованная строка затем отправляется на сервер с помощью Ajax + PHP и записано в .dat
файле.
Я использую fetch
, чтобы получить зашифрованные данные обратно в браузере и пытаюсь расшифровать их снова:
let name = crypt.substr(0,25)
let occup = str.substr(25,35)
console.log(name+' = '+name.length) -> uÛÀ0ÊydhÖà7yqê}X7hONüRéj = 25
console.log(occup+' = '+occup.length) -> ÜÉq.NyÖaZÜdGK!Öhy|CGPOyqê}HïchFü.Pj = 35
... но вы можете сосчитать имя получило 24 символа вместо 25. Последний символ name
(Ü
) теперь является первым из occup
, который получил 35 автомобилей.
Я предполагаю, что это проблема кодирования на некоторых знаки при записи данных на сервер. Я пытаюсь с substr(0,25)
и substring(0,25)
, но оба результата неверны.
Есть ли способ решить эту проблему
- при отправке данных или
- при возврате str
?