我熟悉的几个数据库都提供了加密的函数或模块。示例包括用于 Oracle 数据库的dbms_crypto和用于 MySQL的内置函数。
大多数常用的编程语言都有可用的密码库。
从安全的角度来看,是否有任何问题会导致选择一个而不是另一个?一种方法比另一种方法更可取吗?
我熟悉的几个数据库都提供了加密的函数或模块。示例包括用于 Oracle 数据库的dbms_crypto和用于 MySQL的内置函数。
大多数常用的编程语言都有可用的密码库。
从安全的角度来看,是否有任何问题会导致选择一个而不是另一个?一种方法比另一种方法更可取吗?
提供的算法几乎相同。选择将取决于您的用例。需要考虑的一些事项:
如果要进行加密,则需要将要加密的数据和用于加密的密钥传输到执行该工作的机器上。如果您在前端进行加密,那么您不必“信任”数据库,但如果您有多个前端,这可能会使事情变得更加复杂。如果您对数据库进行加密,那么对数据库的恶意劫持将使您赤身裸体;例如,成功的 SQL 注入攻击更具破坏性。
一般来说,如果你想在前端或数据库上进行加密之间进行安全区分,那么你必须想象一个被破坏而不是另一个被破坏的场景。相反,如果您认为两台机器“同样强大”,那么您的问题仅与性能有关。
我认为在 webapp 的加密中我们有一些分离,这有助于安全。主要是你破解了数据库你有数据,现在你必须破解我们的应用程序来解密数据。在 db crypto 中,我们有单点故障。另外,如果您需要有关应用程序中的签名/加密的一些信息,请选择应用程序级加密。