【问题标题】:Need to encrypt the data in teradata SQL Query需要对 teradata SQL Query 中的数据进行加密
【发布时间】:2019-05-07 22:48:51
【问题描述】:

我需要使用 SQL 查询或存储过程加密 teradata 中的数据。
我在以下示例中有数据:

May123@34@#
AbC@#$%1234DE#f
zyx@12

所以我想要以下格式的输出

aaadddpddpp
aaappppddddaapa
aaapdd

所以我们想用a替换字符,用d替换数字,用p替换特殊字符。

非常感谢您的帮助。

【问题讨论】:

  • 到目前为止你尝试过什么?你被困在哪里了?
  • 对于这样的基本算法,您可以使用 REGEXP_REPLACE 但如何将其解码回原来的状态?如果您正在寻找合适的企业解决方案,您正在寻找可以对数据进行加密和/或标记化的第三方产品。 Teradata 客户端可以加密数据库和客户端之间传输中的数据。此外,某些平台可以加密磁盘上的静态数据。最后,您可以实现自己的 UDF 来解码和编码数据。这个问题的答案可以有很多方面,您需要提供更多细节。

标签: teradata


【解决方案1】:

这看起来像是数据屏蔽,而不是加密。加密是可以通过解密撤消的,而屏蔽是单向的。

您可以使用Regexp_Replace() 进行交换:

SELECT REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE('May123@34@#', '[a-z]', 'a', 1, 0, 'i'),'[0-9]', 'd', 1, 0, 'i'), '[^a-z]', 'p', 1, 0, 'i')

结果:

aaadddpddpp

这首先将所有字母交换为a。然后它将所有数字交换为d。最后剩下的任何东西都被交换到p

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2016-05-17
    • 2017-09-28
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 2011-10-20
    相关资源
    最近更新 更多