2
我想從內存中刪除密碼,信用卡號碼等機密字符串。有沒有辦法在VB6中完全擦除字符串?
在C#中,有一個名爲SecureString的類。
但在VB6中,我沒有找到任何解決方案。
有沒有辦法從內存中完全擦除字符串?
我想從內存中刪除密碼,信用卡號碼等機密字符串。有沒有辦法在VB6中完全擦除字符串?
在C#中,有一個名爲SecureString的類。
但在VB6中,我沒有找到任何解決方案。
有沒有辦法從內存中完全擦除字符串?
A SecureString
在靜止時被加密,這不僅僅是提供一種方法來防止它留在內存中。
有沒有辦法從內存中完全擦除字符串?
是的,您需要現場修改字符串並覆蓋其內容。
可以在LHS模式做到這一點使用mid$()
:
Dim i As Long
For i = 1 To Len(secret)
Mid$(secret, i, 1) = "0"
Next
或者與ZeroMemory
或CopyMemory
API:
ZeroMemory ByVal StrPtr(secret), LenB(secret)
...
CopyMemory ByVal StrPtr(secret), ByVal StrPtr(String$(Len(secret), "0")), LenB(secret)
對於加密,你可以實現DPAPI CryptProtectData
API(這是SecureString
是基於什麼上)。