170 похожих чатов

В чем измеряется длина строк? В байтах? В символах кодировки

utf8?
Sqlite + SQLAlchemy

23 ответов

31 просмотр

Вероятно в байтах

Что еще нафиг за "символы кодировки utf-8" ?

Leo- Автор вопроса
Alex
Вероятно в байтах

Питон строки в utf8? Тогда, вероятно, мне потребуется указать 256 байт чтобы вмещать безопасно 64 символа?

Leo
Питон строки в utf8? Тогда, вероятно, мне потребуе...

Чо? Питон? Строки? что за бессвязный набор слвов? В какой кодировке сохраняются строки в базе данных зависит от коннектора. По-умолчанию в случае питонячьего sqlite3 в UTF-8 да.

Leo
Питон строки в utf8? Тогда, вероятно, мне потребуе...

Если ты хочешь хранить юникодные строки строго определенной длины, почему бы тебе не указывать просто TEXT в базе данных и не делать валидацию длины на уровне приложения?

Leo- Автор вопроса
Alex
Чо? Питон? Строки? что за бессвязный набор слвов? ...

? Ну вот пользователь введет пароль: password = "😊" * 64, я беспокоюсь, что такой пароль может случайно не влезть

Leo- Автор вопроса
Alex
Если ты хочешь хранить юникодные строки строго опр...

Я не знаю сколько это будет занимать памяти, если не критично, то с радостью буду использовать. Однако оптимизировать это было бы хорошо

Нахрена?

Leo- Автор вопроса
Alex
Нахрена?

Потому что это не пароль юзера аккаунта, где достаточно хеш. Это пароли юзера от других аккаунтов

Leo
Потому что это не пароль юзера аккаунта, где доста...

Это все еще слабо объясняет зачем в этой схеме конкретно RSA. Опиши подробней схему использования хранящихся паролей.

в кодпоинтах

Leo- Автор вопроса
Alex
Зачем RSA ?

Чтобы при взломе сервера злоумышленник не смог получить доступ к паролям. Сейчас распишу использование: Пользователь регистрируется, генерируются public_key и private_key. Паблик сохраняется в бд в открытом виде и доступен всегда. Приватный ключ шифруется AES на основе пароля пользователя и хранится в бд в зашифрованном виде. Пользователь получает публичный ключ, шифрует на его основе пароль и передает зашифрованный пароль на сервер чтобы сервер его сохранил. Когда пользователь хочет получить какой-то из сохраненных паролей, он запрашивает зашифр_приватный_ключ, вводит свой пароль и расшифровывает его локально , далее получает с сервера зашифрованный пароль который хочет расшифровать и расшифровывает его. Думаю на время сессии программы сохранять расшифрованный приватный ключ и удалять локально после завершения сессии программы Своеобразный менеджер паролей

Алиса Кассель-Королёва
в кодпоинтах

SQLite3 ничего не знает ни про какие кодпоинты

Leo- Автор вопроса
Alex
А кто генерирует пару ключей?

к сожалению сервер. Это одна из уязвимостей, не включая проверку пароля при авторизации

Leo
к сожалению сервер. Это одна из уязвимостей, не вк...

Если у тебя и отправляет и получает пароли один и тот же пользователь, все еще не ясно зачем в этой схеме RSA. Какая-то переусложненная схема.

Leo- Автор вопроса
Alex
Если у тебя и отправляет и получает пароли один и ...

затем, чтобы не вводить пароль аккаунта для сохранения других паролей (шифрования), а использовать публичный ключ. Это выглядит прямо как у гугла - пароли в их менеджер можно сохранять моментально, а чтобы получить (прочитать пароль от ресурса) нужно ввести пароль аккаунта гугл

Leo
затем, чтобы не вводить пароль аккаунта для сохран...

То есть любой владеющий публичным ключем может сохранить в твой менеджер все что угодно без каких либо последствий?

Leo- Автор вопроса
Alex
То есть любой владеющий публичным ключем может сох...

Нет, не может. За это обычная авторизация отвечает же. У меня хранится хеш пароля юзера, авторизация по jwt. Только авторизированный пользователь, владеющий доступ к текущему ресурсу (ресурс - таблица в бд имеющая ид, тайтл, овнер_ид, связь с таблице паролей)

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта