首页 > 解决方案 > PostgreSQL bytea to Base64 like SQL Server

问题描述

In SQL Server I convert binary to Base64 like this

SELECT HASHBYTES('MD5', 'Test') FOR XML PATH(''), TYPE

and have result "DLxmEfVUC9CAmjiNyVphWw==".

In PostgreSQL i have

SELECT encode(md5('Test')::bytea, 'base64')

and result is "MGNiYzY2MTFmNTU0MGJkMDgwOWEzODhkYzk1YTYxNWI=".

How can I get result like SQL Server?

标签: sql-serverpostgresqlbinarybase64bytea

解决方案


Postgres'md5()返回一个text包含散列的十六进制表示。通过简单地将它转换为该字符串,而不是它所代表的值,bytea您将获得一个。bytea您可以使用decode()以十六进制表示法获取bytea字符串表示的值。

SELECT encode(decode(md5('Test'), 'hex'), 'base64');

推荐阅读