Oracle SQL选择十六进制值并加密为SHA256

问题描述 投票:0回答:1

表上有一个特定的列(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(常规字符串),但我真的

sql oracle hex oracle-sqldeveloper sha256
1个回答
0
投票

在Oracle 12及更高版本中,您可以使用standard_hash()函数。在字符串上使用standard_hash(),然后将该值传递给hextoraw()

hextoraw()

并且顺便说一下,SHA256是一种哈希算法,而不是加密算法。因此,没有“ SHA256加密”值之类的东西。

© www.soinside.com 2019 - 2024. All rights reserved.