Безопасное хранение созданного пользователем текста в базе данных (Ruby / Rails)

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

Кто-нибудь знает, как это можно сделать? Похоже, Dropbox делает что-то подобное: " Приложению необходимо выполнить некоторую обработку данных изображения, поэтому оно не может полагаться на AVCaptureVideoPreviewLayer. Заставить начальный поток работать неплохо, используя пример кода Apple. Проблема возникает, когда я пытаюсь переключиться на изображение более высокого качества, чтобы сделать снимок. В ответ на нажатие кнопки я пытаюсь перенастроить сеанс для получения фотографии с полным разрешением. Я пробовал много вариантов, но вот мой последний пример (который все еще не работает):

- (void)sessionSetupForPhoto
{
 [session beginConfiguration];
 session.sessionPreset = AVCaptureSessionPresetPhoto;
 AVCaptureStillImageOutput *output = [[[AVCaptureStillImageOutput alloc] init] autorelease];
 for (AVCaptureOutput *output in [session outputs]) {
  [session removeOutput:output];
 }
 if ([session canAddOutput:output]){
  [session addOutput:output];
 } else {
  NSLog(@"Not able to add an AVCaptureStillImageOutput");
 }
 [session commitConfiguration];
}

Я постоянно получаю сообщение об ошибке сразу после строки commitConfiguration, которое выглядит следующим образом: В ответ на нажатие кнопки я пытаюсь перенастроить сеанс для получения фотографии с полным разрешением. Я пробовал много вариантов, но вот мой последний пример (который все еще не работает):

- (void)sessionSetupForPhoto
{
 [session beginConfiguration];
 session.sessionPreset = AVCaptureSessionPresetPhoto;
 AVCaptureStillImageOutput *output = [[[AVCaptureStillImageOutput alloc] init] autorelease];
 for (AVCaptureOutput *output in [session outputs]) {
  [session removeOutput:output];
 }
 if ([session canAddOutput:output]){
  [session addOutput:output];
 } else {
  NSLog(@"Not able to add an AVCaptureStillImageOutput");
 }
 [session commitConfiguration];
}

Я постоянно получаю сообщение об ошибке сразу после строки commitConfiguration, которое выглядит следующим образом: В ответ на нажатие кнопки я пытаюсь перенастроить сеанс для получения фотографии с полным разрешением. Я пробовал много вариантов, но вот мой последний пример (который все еще не работает):

- (void)sessionSetupForPhoto
{
 [session beginConfiguration];
 session.sessionPreset = AVCaptureSessionPresetPhoto;
 AVCaptureStillImageOutput *output = [[[AVCaptureStillImageOutput alloc] init] autorelease];
 for (AVCaptureOutput *output in [session outputs]) {
  [session removeOutput:output];
 }
 if ([session canAddOutput:output]){
  [session addOutput:output];
 } else {
  NSLog(@"Not able to add an AVCaptureStillImageOutput");
 }
 [session commitConfiguration];
}

Я постоянно получаю сообщение об ошибке сразу после строки commitConfiguration, которое выглядит следующим образом: (то есть я получаю сообщение AVCaptureSessionRuntimeErrorNotification, отправленное моему зарегистрированному наблюдателю)

Получено сообщение об ошибке: NSConcreteNotification 0x19d870 {имя = AVCaptureSessionRuntimeErrorNotification; объект =; userInfo = { AVCaptureSessionErrorKey = "Домен ошибки = AVFoundationErrorDomain Код = -11800 \ "Операция не может быть завершено. (Ошибка AVFoundationErrorDomain -11800.) \ "UserInfo = 0x19d810 {}";

Документация в XCode якобы предоставляет дополнительную информацию для номера ошибки (-11800): «AVErrorUnknown - Причина ошибки неизвестна»;

Ранее я также пробовали вызовы stopRunning и startRunning, но больше не делали этого после просмотра сеанса WWDC 409, где это не рекомендуется. Когда я останавливался и начинал, я получал другое сообщение об ошибке -11819, которое соответствует «AVErrorMediaServicesWereReset - Операция не может быть завершена, потому что медиа-службы стали недоступны.», Что намного лучше, чем просто «неизвестно», но не обязательно больше полезно.

Он успешно добавляет AVCaptureStillImageOutput (т. Е. НЕ генерирует сообщение журнала).

Я тестирую iPhone 3G (w / 4.1) и iPhone 4.

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

Как избежать ошибки? Как мне переключиться на более высокое разрешение, чтобы сделать снимок?

Спасибо!

7
задан Matthew 10 December 2010 в 01:47
поделиться