- Categorias:
Funções de cadeia de caracteres e binários (Hash criptográfico)
SHA1_BINARY¶
Retorna um valor binário de 20 caracteres contendo o resumo da mensagem SHA-1 de 160 bits.
Sintaxe¶
SHA1_BINARY(<msg>)
Argumentos¶
msg
Uma expressão de cadeia de caracteres, a mensagem a ser aplicado hash.
Retornos¶
O tipo de dados do valor retornado é BINARY.
Notas de uso¶
A família SHA1 de funções é fornecida principalmente para compatibilidade retroativa com outros sistemas. Para uma criptografia mais segura, o Snowflake recomenda o uso da família SHA2 de funções.
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 sha1_binary('Snowflake');
------------------------------------------+
SHA1_BINARY('SNOWFLAKE') |
------------------------------------------+
FDA76B0BCC1E87CF259B1D1E3271D76F590FB5DD |
------------------------------------------+
O tipo de dados da saída é BINARY
e pode ser armazenado em uma coluna BINARY
:
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 (note que para a exibição, a saída é implicitamente convertida em uma forma legível pelo usuário, que neste caso é uma cadeia de caracteres de dígitos hexadecimais):
SELECT v, v_as_sha1_binary FROM sha_table ORDER BY v; +-------+------------------------------------------+ | V | V_AS_SHA1_BINARY | |-------+------------------------------------------| | AbCd0 | 9DDB991863D53B35A52C490DB256207C776AB8D8 | +-------+------------------------------------------+