菜鸟教程小白 发表于 2022-12-12 10:08:55

ios - 从 key 字符串生成 64 字节长的 NSData


                                            <p><p>我认为这会生成随机的 64 字节 NSData。</p>

<pre><code>uint8_t buffer;
SecRandomCopyBytes(kSecRandomDefault, 64, buffer);
NSData *keyData = [ initWithBytes:buffer length:sizeof(buffer)];
</code></pre>

<p>我想像这样生成 64 字节的 NSData,但不是随机数据。
如何使用给定的键(如“com.this.is.akey”)生成 64 字节的 NSData。</p>

<p>试过这个,但它给了我错误的字节大小(不是 64 字节)。</p>

<pre><code>NSString *base64EncodedString = [[@&#34;somekey.here&#34; dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:0];
NSData *encodedData = [ initWithBase64EncodedString:base64EncodedString
                                                          options:0];
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您可以使用 <code>-</code> 将 <code>NSString</code> 转换为 <code>NSData</code>。</p>

<pre><code>NSString *key = @&#34;com.this.is.akey&#34;;
NSData *keyData = ;
</code></pre>

<p>如果数据长度小于或大于 64 字节,则应填充或截断数据以精确到 64 字节。</p>

<pre><code>if (keyData.length != 64) {
    NSMutableData *mutableData = keyData.mutableCopy;
    mutableData.length = 64;
    keyData = mutableData.copy;
}
</code></pre>

<p>然后,您可以将 <code>NSData</code> 对象传递给 <code>RLMRealmConfiguration.encryptionKey</code>。</p>

<pre><code>RLMRealmConfiguration *config = ;
config.encryptionKey = keyData;

NSError *error = nil;
RLMRealm *realm = ;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 从 key 字符串生成 64 字节长的 NSData,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/34854250/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/34854250/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 从 key 字符串生成 64 字节长的 NSData