Генерация секретного ключа для шифрования AES 256 из брелка
Я работаю над проектом, где мне нужно зашифровать / расшифровать некоторые данные локально. Я использую RNCryptor для шифрования и дешифрования. Для этого мне нужно использовать ключ, я не хочу определять этот ключ со стороны приложения, как:
NSString *password = @"Secret password";
Есть ли способ определить ключ, используя любое свойство из цепочки для ключей, чтобы я мог использовать тот же ключ, не определяя его в базе кода.
2 ответа
Если вы не хотите объявлять статический ключ или получать ключ из статического пароля, вы, безусловно, можете получить случайный ключ и сохранить это значение в связке ключей. SecRandomCopyBytes
вернет массив произвольной длины, который был сгенерирован криптографически безопасным способом. Вы можете запросить 32 байта (256 бит) из этой службы и сохранить их в качестве ключа в связке ключей. Очевидно, имейте в виду, что если вы вызовете это несколько раз, он не вернет тот же результат, поэтому вы не должны потерять ключ после того, как сохранили его.
Вы можете попробовать SAMKeychain в github