Md5 в большом запросе

В BigQuery я использую функцию md5 как:

select md5('<<some string>>') as hashed

который всегда возвращает "==" в конце буквы, например:

R7zlx09Yn0hn29V+nKn4CA==    

Почему '==' всегда идет с ним?

Возвращаемая строка закодирована в base64, я уверен, что это просто дополнение: stackoverflow.com/questions/6916805/…

mortb 29.01.2019 08:25

У вас низкая ставка. Важно для SO, вы должны отметить принятые ответы, поставив галочку слева от опубликованного ответа под голосованием. Это повысит вашу ставку. Посмотрите, как это работает, перейдя по этой ссылке: meta.stackoverflow.com/questions/5234/…

Pentium10 15.02.2019 22:04
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
10
2
4 011
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вам нужно использовать TO_HEX, чтобы получить желаемое представление, поскольку md5 возвращает BYTES, и вам нужны строки:

TO_HEX: Converts a sequence of BYTES into a hexadecimal STRING. Converts each byte in the STRING as two hexadecimal characters in the range (0..9, a..f).

select TO_HEX(md5('123456')) as hashed

возвращает:

e10adc3949ba59abbe56e057f20f883e

= связаны с заполнение base64. Тем не менее, согласно документация, вывод должен быть байтом, но вместо этого вывод представляет собой строку base64. Вы можете проверить это с помощью следующего запроса:

SELECT MD5("Hello World") AS MD5,TO_HEX(MD5("Hello World")) AS BYTES,TO_BASE64(FROM_HEX(TO_HEX(MD5("Hello World")))) as BASE64

Со следующим выводом:

Row |MD5                        |BYTES                              |BASE64  
1   |sQqNsWTgdUEFt6mb5y4/5Q==   |b10a8db164e0754105b7a99be72e3fe5   |sQqNsWTgdUEFt6mb5y4/5Q=

Другие вопросы по теме