Как преобразовать текстовые значения SHA1 и MD5 в двоичные файлы? (SQL) - PullRequest
0 голосов
/ 14 сентября 2011

Итак, у меня есть строка SHA1 varchar, такая как 'LQSVPLQSVPSYKLMTY7P5SVPSYN54CMGU' = 32 байта в базе данных.Как я могу преобразовать его в двоичный код?

SELECT BINARY('LQSVPLQSVPSYKLMTY7P5SVPSYN54CMGU'); 

Это не то, что я ищу.Это будет та же 32-байтовая строка, но в BLOB.Мне нужно сначала получить значение от sha1.Есть ли способ в Mysql \ Postgresql сделать это?Я также заинтересован в подобной конвертации в MD5.Есть ли универсальный способ?

Этот вопрос относится к Хранение шестнадцатеричных значений в двоичном виде в MySQL .

1 Ответ

1 голос
/ 22 марта 2013

Как отмечено в комментариях, базовые значения SHA1 и MD5 экранированы в шестнадцатеричном формате. Это может быть легко преобразовано в bytea:

 select ('\x' || md5('test'))::bytea;

Для этого требуется новая версия PostgreSQL, достаточно новая для поддержки шестнадцатеричного кодирования байтов.

MySQL, вероятно, имеет совершенно другой способ сделать это, учитывая несоответствия между типами, которые вы не можете ожидать от решения для кросс-dB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...