模糊整数列

时间:2013-01-15 15:08:26

标签: tsql encryption obfuscation

我本可以将它发布到SQL论坛,但我宁愿寻找一个想法或最佳实践,这就是我选择这个论坛的原因。  我在SQL中有一个名为Payroll Number的整数列,它对员工来说是唯一的。我们将通过SQL视图从该系统查询员工信息并将其放入另一个系统,但我们不希望工资单号出现在此系统上。因此,我们需要在SQL上散列这些工资单数字,以便视图将提供用户友好的哈希数字。

我花了很多时间在SQL中阅读加密技术,但他们使用复杂的算法来散列数据并生成二进制文件。但我所追求的是较少的补充和混淆数字而不是散列。

例如,工资单号码长度为6个字符(145674),我希望能够从该号码生成9-10个字符长的整数,并在其他系统上使用它。

我看过XOR'ing,但我需要更强大和优雅的东西。

你们是怎么做这些事的?你写的简单算法是否会混淆你的整数?我需要在SQL级别上做这个,你有什么建议吗?

感谢您的帮助

此致

1 个答案:

答案 0 :(得分:2)

散列值并不难,但很难对值进行散列并确保其唯一性并将其设为数字​​。但是,我确实有一个跨数据库解决方案。

创建一个新表 - 包含两列,id(从随机起点自动生成)和工资单ID。

每当您需要使用外部用户将其插入此表时。这将为您提供一个您可以使用的本地唯一ID(内部和外部),但它不是工资单ID。

事实上,如果您已经拥有内部ID(例如用户表中的用户ID),那就使用它。如果从未解码,则对该值进行散列没有任何优势。但是,您可以使用id的autogen作为随机唯一哈希 - 它具有您需要的所有属性。