これは、間接的なレイヤーを追加することによって解決される多くの問題の1つです。ランダムなキーを生成し、そのキーを使用してデータを暗号化し、そのキーをパスワードから派生したキーで暗号化されたファイル(またはデータベース列など)に格納します。以下のような
何か(用心、私はスウィフトを知らない):
// Generation of the data keys
let dek = RNCryptor.randomDataOfLength(RNCryptor.FormatV3.keySize)
let dak = RNCryptor.randomDataOfLength(RNCryptor.FormatV3.keySize)
// Use these to work on the data
let encryptor = RNCryptor.EncryptorV3(encryptionKey: dek, hmacKey: dak)
let decryptor = RNCryptor.DecryptorV3(encryptionKey: dek, hmacKey: dak)
// Save the data keys encrypted with the password
let dek_file = RNCryptor.encryptData(dek, password: password)
let dak_file = RNCryptor.encryptData(dek, password: password)
// Store both dek_file and dak_file somewhere
// Next time, load dek_file and dak_file from where you stored them
let dek = RNCryptor.decryptData(dek_file, password: password)
let dak = RNCryptor.decryptData(dek_file, password: password)
これはいっそ – Mat0
:)はるかに優れたおかげで、自分でこれをしない:使用GPGまたはその他の十分にテストソリューションを。 –