Oracle TDE——加盐和加密数据

Oracle TDE -- Salt and Encrypted Data

对于 Oracle TDE,可以选择向纯文本添加盐(默认情况下)或忽略盐(使用 NO SALT)参数。

  1. 我想知道 salt 在 table 中每个 row/record 是唯一的还是在单个 table.
  2. 中的所有行中都是通用的
  3. 有什么方法可以将加密值作为查询结果查看吗? (打开钱包会给你实际的解密值,我在不打开钱包和设置主密钥的情况下尝试查询时遇到错误)。

关于您的问题:

  1. SALT 是在行级别生成的随机值。众所周知,在密码学中,salt 是一种加强加密数据安全性的方法,它在数据加密前添加一个随机字符串,使攻击者更难窃取。由于它是随机的,因此总是存在非唯一性的可能性,但通常它应该是唯一的。这 16 个字节被添加到列中,您可以通过块的转储看到这些内容。 SALT 不能用于索引列。
  1. 没有办法,这正是TDE的objective。为了查询您需要打开钱包的数据。当您的数据库包含使用 TDE 加密的表和列时,DBA 通常会为钱包配置自动登录,因此您无需在重启后手动执行。

如果您想随意查询数据,加密或不加密,不依赖钱包,您可以在包中使用DBMS_CRYPTO来存储数据,使用函数加密或随意解密。你在这里有最后一点的一个很好的例子

https://oracle-base.com/articles/10g/database-security-enhancements-10g#dbms_crypto