表上有一个特定的列(hex_values),其中所有值(字符串)均以base16(HEX)编码。
是否可以选择hex_values的所有成员并将结果进行SHA256加密?
例如:
-------------------------
| HEX_VALUES |
-------------------------
| 70617373776f7264313233a | //password123 (HEX)
-------------------------
| 31323370617373776f7264a | //123password (HEX)
-------------------------
| 6c6f72656d697073756d | //loremipsum (HEX)
-------------------------
| 6d7970617373776f7264 | //mypassword (HEX)
-------------------------
然后,SQL查询将完成所有工作,就像这样(第1行示例:]
70617373776f7264313233a(十六进制字符串)-> password123(常规字符串)-> sha256(password123)(巨型字符串)
因此,此SQL查询的结果将是:
-------------------------
| HEX_VALUES |
-------------------------
| sha256(password123) |
-------------------------
| sha256(123password) |
-------------------------
| sha256(loremipsum) |
-------------------------
| sha256(mypassword) |
-------------------------
[我知道我可以:选择十六进制字符串->转换为常规字符串-> SHA256(常规字符串),但我真的
在Oracle 12及更高版本中,您可以使用standard_hash()
函数。在字符串上使用standard_hash()
,然后将该值传递给hextoraw()
。
hextoraw()
并且顺便说一下,SHA256是一种哈希算法,而不是加密算法。因此,没有“ SHA256加密”值之类的东西。