在 Oracle 中,我的数据已通过将整数传递给“STANDARD_HASH”来进行散列,如下所示。如何使用 Python 获得相同的哈希值?
当整数传递给 STANDARD_HASH 时,在 Oracle 中产生结果:
SELECT STANDARD_HASH(123, 'SHA256') FROM DUAL;
# A0740C0829EC3314E5318E1F060266479AA31F8BBBC1868DA42B9E608F52A09F
传入字符串时在 Python 中的结果:
import hashlib
hashlib.sha256(str.encode(str(123))).hexdigest().upper()
# A665A45920422F9D417E4867EFDC4FB8A04A1F3FFF1FA07E998E86F7F7A27AE3
# I want to modify this function to get the hash value above.
也许这些信息也会有所帮助。我无法更改 Oracle 端的任何内容,但如果可以,我会将列转换为CHAR,它会提供与我当前的 Python 实现相同的值。下面是一个例子。
当字符串传递给 STANDARD_HASH 时,在 Oracle 中的结果:
SELECT STANDARD_HASH('123', 'SHA256') FROM DUAL;
# A665A45920422F9D417E4867EFDC4FB8A04A1F3FFF1FA07E998E86F7F7A27AE3 (matches Python result)
我做了几次尝试,比如简单地将一个整数传递给 Python,但这会导致需要一个字符串的错误。我还搜索了一种对整数进行编码的方法,但没有取得任何进展。
至尊宝的传说
慕盖茨4494581
相关分类