SHA-256哈希和base64编码

时间:2017-11-16 05:45:26

标签: sql postgresql

使用字符串"123456Adrian Wapcaplet"我需要

  1. 生成SHA-256哈希
  2. 取最重要的128位散列
  3. 以base64编码
  4. 表示这些位

    我需要#1和#3的帮助。以下是我在Linux中生成它的方法

    $ echo -n "123456Adrian Wapcaplet" | shasum -a 256 | cut -c33-64 | xxd -r -p | base64
    
    jNWe9TyaqmgxG3N2fgl15w==
    

1 个答案:

答案 0 :(得分:1)

安装pgcrypto扩展名:

create extension pgcrypto;

然后你可以使用digest函数来做sha256。您需要的其他功能都是内置的:

select encode(substring(digest('123456Adrian Wapcaplet', 'sha256') from 17), 'base64');

请注意,在调用text时,会在此处执行从byteadigest的隐式演员。它将使用数据库的默认编码。为避免因环境差异而导致的问题,您可以指定转换的编码:

digest(convert_to('123456Adrian Wapcaplet', 'utf8'), 'sha256')