将散列字符串 (SHA512) 从一个 Oracle 数据库迁移到另一个数据库?

Migrate hashed string (SHA512) from one Oracle DB to another?

请问是否可以将散列字符串 (SHA-512) 从一个 Oracle 数据库迁移/克隆到另一个数据库?如果不是那么大公司如何迁移他们的用户帐户?

谢谢,

May I ask is it possible to migrate / clone the hashed string (SHA-512) from one Oracle database to another?

是的,只需将数据从一个数据库复制到另一个数据库即可。然后,当你想将一个值与散列进行比较时,只需将该值通过相同的散列算法并比较散列即可。

你可以这样做:

SELECT STANDARD_HASH( 'my data', 'SHA512' ) FROM DUAL;

在两个不同的数据库上它会得出相同的结果。

| STANDARD_HASH('MYDATA','SHA512')                                                                                                   |
| :--------------------------------------------------------------------------------------------------------------------------------- |
| 0x6E5F36E9CEE5CBA6AD938977C98E12F3A61FC4D944753AD130116B026B8AB2C895878910FEA3B47DBA6D760A20D0B23233980A8DAB13F04F262C53F25222B416 |

db<>fiddle here

如果在散列之前对值进行了加盐处理,那么您将需要确保也复制了加盐值,并以完全相同的方式在两个系统中应用加盐值;如果你能做到这一点,那么生成的哈希值将是等价的。