Sha*_*man 0 memory security objective-c nsdata swift
我有一个NSData对象,将包含敏感数据.操作完成后,我想擦除内存以避免任何潜在的安全问题.在Objective-C中,这很容易.我可以打电话给...
memset([mySensitiveData bytes], 0, [mySensitiveData length]);
Run Code Online (Sandbox Code Playgroud)
然而,在Swift中,它并不那么简单.我尝试过相同的......
memset(mySensitiveData.bytes, 0, mySensitiveData.length)
Run Code Online (Sandbox Code Playgroud)
...但是,我收到编译错误说...
'UnsafePointer<Void>' is not convertible to 'UnsafeMutablePointer<Void>'
Run Code Online (Sandbox Code Playgroud)
知道如何解决这个问题并在Swift中安全地擦除内存吗?谢谢!!
NSData是不可变的,这就是它UnsafePointer<Void>用于字节指针的原因.
你应该使用NSMutableData这个,然后打电话:resetBytesInRange(NSMakeRange(0, mySensitiveData.length)).此方法将用零替换内容memset.
| 归档时间: |
|
| 查看次数: |
1065 次 |
| 最近记录: |