我本可以将这篇文章发布到SQL论坛上,但我更愿意寻找一个想法或最佳实践,这就是我选择这个论坛的原因。我在SQL中有一个名为Payroll Number的整型列,它对于employee是唯一的。我们将通过SQL视图从该系统中查询员工信息,并将其放入另一个系统中,但我们不希望工资总额数字出现在该系统中。因此,我们需要在SQL上对这些薪资数字进行哈希处理,以便视图能够提供经过哈希处理的用户友好数字。
我花了相当多的时间阅读SQL中的加密技术,但它们使用复杂的算法来散列数据并产生二进制。但我想要的是更少的复杂和混淆一个数字,而不是散列。
例如,工资单号码是6个字符的长度(145674),我希望能够从这个数字生成可能9-10个字符的长度整数数字,并在其他系统上使用它。
我看过XOR‘’ing,但我需要更健壮和优雅的东西。
你们是怎么做这些事情的?你写你的简单算法混淆你的整数吗?我需要在SQL级别上做这件事,你有什么建议?
谢谢你的帮忙
问候
发布于 2013-01-15 23:41:20
散列值并不难,但很难散列值并确保其唯一性,并使其成为一个数字。然而,我确实有一个跨数据库的解决方案。
创建一个新表-包含两列,id (从随机起点自动生成)和payroll id。
每次需要在外部使用用户时,将它们插入到此表中。这将为您提供一个可以(内部和外部)使用的本地唯一id,但它不是工资单id。
事实上,如果你已经有了一个内部id (例如用户表中的用户id ),那就使用它。如果该值从未被解码,则对其进行哈希处理没有任何好处。但是,您可以使用id的autogen作为您的随机惟一散列--它具有您需要的所有属性。
https://stackoverflow.com/questions/14340627
复制相似问题