0

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

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

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

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

你们是怎么做这些事情的?你写你的简单算法来混淆你的整数吗?我需要在 SQL 级别上执行此操作,您有什么建议?

谢谢你的帮助

问候

4

1 回答 1

2

散列一个值并不难,但很难散列一个值并确保唯一性并使其成为一个数字。但是,我确实有一个跨数据库解决方案。

制作一个新表 - 有两列,id(从随机起点自动生成)和工资单 id。

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

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

于 2013-01-15T15:41:19.860 回答