- Categorias:
Funções de cadeia de caracteres e binários (Hash criptográfico)
SHA2 , SHA2_HEX¶
Retorna uma cadeia de caracteres codificada em hexadecimal contendo o resumo da mensagem SHA-2 de N-bits, em que N é o tamanho especificado do resumo de saída.
Estas funções são sinônimas.
Sintaxe¶
SHA2( <msg> [, <digest_size>] )
SHA2_HEX( <msg> [, <digest_size>] )
Argumentos¶
Obrigatório:
msg
Uma expressão de cadeia de caracteres, a mensagem a ser aplicado hash
Opcional:
digest_size
Tamanho (em bits) da saída, correspondente à função específica SHA-2 usada para criptografar a cadeia de caracteres:
224 = SHA-224
256 = SHA-256 (padrão)
384 = SHA-384
512 = SHA-512
SHA-512/224 e SHA-512/256 não são suportados.
Retornos¶
O tipo de dados do valor retornado é VARCHAR.
Notas de uso¶
Não usar esta função para criptografar uma mensagem que você precisa descriptografar. Esta função não tem função de descriptografia correspondente. (O comprimento da saída é independente do comprimento da entrada. A saída não tem necessariamente bits suficientes para guardar todas as informações da entrada, de modo que não é possível escrever uma função que possa decifrar todas as entradas válidas possíveis).
Esta função destina-se a outros fins, como o cálculo de uma soma de verificação para detectar a corrupção de dados.
Se você precisar criptografar e descriptografar dados, use as seguintes funções:
Exemplos¶
SELECT sha2('Snowflake', 224);
----------------------------------------------------------+
SHA2('SNOWFLAKE', 224) |
----------------------------------------------------------+
6267d3d7a59929e6864dd4b737d98e3ef8569d9f88a7466647838532 |
----------------------------------------------------------+
O tipo de dados da saída é cadeia de caracteres (VARCHAR
) e pode ser armazenado em uma coluna VARCHAR
:
Criar e preencher uma tabela:
CREATE TABLE sha_table( v VARCHAR, v_as_sha1 VARCHAR, v_as_sha1_hex VARCHAR, v_as_sha1_binary BINARY, v_as_sha2 VARCHAR, v_as_sha2_hex VARCHAR, v_as_sha2_binary BINARY ); INSERT INTO sha_table(v) VALUES ('AbCd0'); UPDATE sha_table SET v_as_sha1 = SHA1(v), v_as_sha1_hex = SHA1_HEX(v), v_as_sha1_binary = SHA1_BINARY(v), v_as_sha2 = SHA2(v), v_as_sha2_hex = SHA2_HEX(v), v_as_sha2_binary = SHA2_BINARY(v) ;Aqui estão a consulta e a saída:
SELECT v, v_as_sha2, v_as_sha2_hex FROM sha_table ORDER BY v; +-------+------------------------------------------------------------------+------------------------------------------------------------------+ | V | V_AS_SHA2 | V_AS_SHA2_HEX | |-------+------------------------------------------------------------------+------------------------------------------------------------------| | AbCd0 | e1d8ba27889d6782008f495473278c4f071995c5549a976e4d4f93863ce93643 | e1d8ba27889d6782008f495473278c4f071995c5549a976e4d4f93863ce93643 | +-------+------------------------------------------------------------------+------------------------------------------------------------------+