簡體   English   中英

在Swift中擦除NSData內容

[英]Wipe NSData contents in Swift

我有一個NSData對象,其中將包含敏感數據。 操作完成后,我想擦除內存以避免任何潛在的安全問題。 在Objective-C中,這很容易。 我可以打電話給...

memset([mySensitiveData bytes], 0, [mySensitiveData length]);

但是,在Swift中,它並不那么簡單。 我嘗試了等效的...

memset(mySensitiveData.bytes, 0, mySensitiveData.length)

...但是,我收到一個編譯器錯誤提示...

'UnsafePointer<Void>' is not convertible to 'UnsafeMutablePointer<Void>'

知道如何解決這個問題並在Swift中安全擦除內存嗎? 謝謝!!

NSData是不可變的,這就是為什么它使用UnsafePointer<Void>作為字節指針。

您應該為此使用NSMutableData ,然后調用: resetBytesInRange(NSMakeRange(0, mySensitiveData.length)) 此方法將像memset一樣將內容替換為零。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM