delphi – 在Windows中存储密码的安全方式
我试图保护包含敏感信息的本地数据库(类似于
this question,仅适用于delphi 2010)
我使用的是DISQLite component,它支持AES加密,但是我仍然需要保护我用来解密的密码.读数据库. 我最初的想法是生成一个随机密码,使用类似DPAPI(CryptProtectData和CryptUnprotectData函数在Crypt32.dll中找到)中存储它,但是我找不到任何示例 我的问题是:如何安全地存储随机生成的密码?或者,假设DPAPI路是安全的,我该如何在Delphi中实现这个DPAPI? 解决方法
最好使用Windows
DPAPI.它比使用其他方法更安全:
> CryptProtectData / CryptProtectMemory CryptProtectMemory / CryptUnprotectMemory提供更多的灵活性: > CRYPTPROTECTMEMORY_SAME_PROCESS:只有您的进程可以解密您的数据 优点: >不需要钥匙 – Windows do it for you 缺点: >在CRYPTPROTECTMEMORY_SAME_PROCESS的情况下,一个*只需要在你的进程中注入一个新的线程,这个线程就可以解密你的数据 注意:“每个用户”是具有使用DPAPI的工具或技能的用户 无论如何 – 你有选择. 请注意,@ David-Heffernan是对的 – 存储在计算机上的任何东西都可以被解密 – 从内存中读取,在进程中注入线程 另一方面,为什么我们不要让饼干的生活更难? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |