Шифрование поля пароля iPhone SQLite - PullRequest
1 голос
/ 10 июня 2010

Добрый день, парни и девушки,

Надеюсь, это будет простой и быстрый вопрос.

Я создаю приложение, которое требует, чтобы пользователь вводил свои данные для входа в онлайн-службу, на которую он ссылается. Можно добавить и сохранить несколько данных для входа, поскольку у пользователя может быть несколько учетных записей, между которыми он хотел бы переключиться.

Эти данные будут храниться в базе данных SQLite и содержать их пароли. Теперь вопросы:

1: Должны ли эти пароли быть зашифрованы в базе данных? Мой инстинкт сказал бы «да», но тогда я не знаю, насколько безопасны устройство и система, и если это необходимо.

2: Если они должны быть зашифрованы, что я должен использовать? Я думаю, что шифрование всего файла базы данных звучит немного излишне, поэтому я должен просто зашифровать пароль перед сохранением его в базе данных? Если это так, что я мог бы использовать для достижения этого? Я нашел ссылку на "crypt (3)", но мне трудно найти много информации о нем или о том, как его реализовать.

Я с нетерпением жду ваших ответов!

РЕДАКТИРОВАТЬ: Как вы увидите из выбранного ответа и комментариев KeyChain - это то, с чем я столкнулся. Любой, кто заинтересован в его использовании, найдет здесь полезный исходный код:

http://log.scifihifi.com/post/55837387/simple-iphone-keychain-code

Ответы [ 2 ]

1 голос
/ 11 июня 2010

Не реализуйте свой собственный крипто; просто используйте брелок.

0 голосов
/ 10 июня 2010

1) Да.Пароли должны быть зашифрованы.

2) Вы должны зашифровать пароль к базе данных.Нужно ли повторно использовать пароли в другом месте после их сохранения, или вы используете их только для проверки учетных данных, предоставленных пользователем?

Если вы используете их только в качестве проверки, вы можете использовать одностороннюю функцию хеширования, такую ​​как MD5 или SHA-1, или что-то в этом роде (с добавлением некоторых случайных символов).1006 * В противном случае вам нужно использовать какой-то обратимый метод шифрования для извлечения ваших сохраненных значений.Я бы подумал об использовании брелка, если это вообще возможно.Это то, что Apple предлагает разработчикам, поэтому они несут ответственность за соответствие экспорту.

EDIT

Также вы можете проверить этоссылка, если вы идете по последнему маршруту.Он включает @category в комментариях к NSMutableData, что позволяет вам избежать необходимости заполнять форму CCATS:

http://iphonedevelopment.blogspot.com/2009/02/strong-encryption-for-cocoa-cocoa-touch.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...