原则上,可以很容易地加密sqlite文件,stackoverflow和我的其他网站上提供了vb.net和其他语言的代码示例。所有的方法(至少我找到了(都将密码硬编码到源代码中,然后在查询过程中提交到sqlite连接器。
我很好奇,这是否真的是最好的做法。我可以想象,从编译的二进制文件中提取这个密码是非常容易的。谢谢你的提示。
加密不能解决问题,它能转移的问题。您有一个要保护的明文。你用一个秘密加密。现在你有了一个想要保护的秘密。你用它做什么?加密?你已经做过一次了。当你再次这样做时,它会改变什么吗?
另一方面,将机密保存在二进制文件中可能是错误的方法,因为这通常意味着您也将机密保存到存储库的源代码中。这增加了应用程序的攻击面,通常是我们想要避免的。那么秘密在哪里呢?下一个最好的选择是将机密保存在需要的地方——在执行二进制文件的服务器上(并且仅在服务器上(。这种方法还遵循十二因素应用程序的规则,您希望将配置保存在环境中。
使应用程序在技术用户下运行。将所有机密放入受文件系统访问权限保护的文件中,以便只有技术用户才能读取这些机密。这是21世纪最好的,无需额外的硬件令牌支持。当应用程序启动时,魔术般的手动秘密输入对任何人来说都是不切实际的