您将如何在Golang中构建程序,以确保一部分数据保留在易失性内存中,并且永远不会缓存到磁盘或交换中?
我正在尝试为用户名实现布隆过滤器,以最大程度地减少磁盘读取。
参考Ensuring Secure Data Remains in Memory,我正在寻找golang中用于其他目的的解决方案。
答案 0 :(得分:4)
您可以使用mlock
包在Go中调用syscall
syscall(及其联系)。例如,请参见https://golang.org/pkg/syscall/#Mlock。
也就是说,如果您需要加密安全性(例如,确保密钥永远不会进入磁盘),那么Go垃圾收集器可能不是100%防弹的。在这种情况下,您可能需要考虑使用memguard之类的库。