В BigQuery я использую функцию md5 как:
select md5('<<some string>>') as hashed
который всегда возвращает "==" в конце буквы, например:
R7zlx09Yn0hn29V+nKn4CA==
Почему '==' всегда идет с ним?
У вас низкая ставка. Важно для SO, вы должны отметить принятые ответы, поставив галочку слева от опубликованного ответа под голосованием. Это повысит вашу ставку. Посмотрите, как это работает, перейдя по этой ссылке: meta.stackoverflow.com/questions/5234/…


Вам нужно использовать 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=
Возвращаемая строка закодирована в base64, я уверен, что это просто дополнение: stackoverflow.com/questions/6916805/…