2017-11-16 1 views
1

mit der Zeichenfolge "123456Adrian Wapcaplet" Ich mussSHA-256 Hash und Base64-Kodierung

  1. erzeugen, um den SHA-256 Hash
  2. die niedrigstwertigen 128 Bits des Hash nehmen
  3. diese Bits in Base64-Kodierung darstellen

Ich brauche Hilfe mit # 1 und # 3. Unten ist, wie ich diese

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

jNWe9TyaqmgxG3N2fgl15w== 

Antwort

1

Installieren der pgcrypto Erweiterung in Linux generieren:

create extension pgcrypto; 

Dann können Sie die digest Funktion sha256 zu tun. Der Rest der Funktionen benötigen Sie sind integriert:

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

Hinweis, dass es eine implizite Umwandlung text-bytea hier durchgeführt, wenn digest Aufruf. Es wird die Standardcodierung für die Datenbank verwendet. Um Probleme aufgrund von Umgebungsunterschieden zu vermeiden, können Sie die Codierung für die Konvertierung angeben:

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