Генерация секретного ключа для шифрования AES 256 из брелка

Я работаю над проектом, где мне нужно зашифровать / расшифровать некоторые данные локально. Я использую RNCryptor для шифрования и дешифрования. Для этого мне нужно использовать ключ, я не хочу определять этот ключ со стороны приложения, как:

NSString *password = @"Secret password";

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

2 ответа

Решение

Если вы не хотите объявлять статический ключ или получать ключ из статического пароля, вы, безусловно, можете получить случайный ключ и сохранить это значение в связке ключей. SecRandomCopyBytes вернет массив произвольной длины, который был сгенерирован криптографически безопасным способом. Вы можете запросить 32 байта (256 бит) из этой службы и сохранить их в качестве ключа в связке ключей. Очевидно, имейте в виду, что если вы вызовете это несколько раз, он не вернет тот же результат, поэтому вы не должны потерять ключ после того, как сохранили его.

Вы можете попробовать SAMKeychain в github

https://github.com/soffes/SAMKeychain

Другие вопросы по тегам