BASE64ENCODE Function
Converts an input value to base64 encoding with optional padding with an equals sign (=
). Input can be of any type. Output type is String.
base64 is a method of representing data in a binary format over text protocols. During encoding, text values are converted to binary values 0-63. Each value is stored as an ASCII character based on a conversion chart.
Typically, base64 is used to transmit binary information, such as images, over transfer methods that use text, such as HTTP.
Note
base64 is not an effective method of encryption.
For more information on base64, see https://en.wikipedia.org/wiki/Base64.
Wrangle vs. SQL: This function is part of Wrangle, a proprietary data transformation language. Wrangle is not SQL. For more information, see Wrangle Language.
Basic Usage
Column reference example:
base64encode(mySource)
Output: Returns the values from the mySource
column written in base64 format.
String literal example:
base64encode('Hello, World. ', true)
Output:Returns the string: GVsbG8sIFdvcmxkLiA=
. Note that the output string is padded with the equals sign at the end of the output value.
Syntax and Arguments
base64encode(column_string,bool_padding)
Argument | Required? | Data Type | Description |
---|---|---|---|
column_string | Y | string | Name of the column or string literal to be applied to the function |
bool_padding | N | Boolean | When |
For more information on syntax standards, see Language Documentation Syntax Notes.
column_string
Name of the column or string constant to be converted.
Missing string or column values generate missing string results.
String constants must be quoted (
'Hello, World'
).Multiple columns and wildcards are not supported.
Usage Notes:
Required? | Data Type | Example Value |
---|---|---|
Yes | String literal or column reference | myColumn |
bool_padding
Boolean value that determines if spaces are padded with the equals sign.
Base64 represents six-bit values (0-63). These values are represented in encoded values as ASCII characters, which are 8-bit values (0-255).
For any arbitrary input, it is possible that the number of bits required to represent it as a base64 value (number of characters * 6) won't precisely match up ASCII representation. Four sextets of base64 encoding map to three octets of ASCII encoding. If the input string has been fully encoded, but there are extra ASCII octets so that the number of output octets is divisible by four.
When this parameter is set to true
, the output value is padded with the equals sign (=
) to represent output octets that are generated but do not contain any data encoded from the input. The default is true
.
For more information on base64 padding, see https://en.wikipedia.org/wiki/Base64.
Usage Notes:
Required? | Data Type | Example Value |
---|---|---|
No | Boolean | false |
Examples
Astuce
For additional examples, see Common Tasks.
Example - base64 encoding and decoding
This example demonstrates how to convert an input string to a base64-encoded value and back to ASCII text strings.
Functions:
Item | Description |
---|---|
BASE64ENCODE Function | Converts an input value to base64 encoding with optional padding with an equals sign ( |
BASE64DECODE Function | Converts an input base64 value to text. Output type is String. |
Source:
The following example contains three columns of different data types:
IntegerField | StringField | ssn |
---|---|---|
-2082863942 | This is a test string. | 987654321 |
2012994989 | "Hello, world." | 987654322 |
-1637187918 | "Hello, world. Hello, world. Hello, world." | 987654323 |
-1144194035 | fyi | 987654324 |
-971872543 | 987654325 | |
353977583 | This is a test string. | 987-65-4321 |
-366583667 | "Hello, world." | 987-65-4322 |
-573117553 | "Hello, world. Hello, world. Hello, world." | 987-65-4323 |
2051041970 | fyi | 987-65-4324 |
522691086 | 987-65-4325 |
Transformation - encode:
You can use the following transformation to encode all of the columns in your dataset:
Transformation Name | |
---|---|
Parameter: Columns | All |
Parameter: Formula | base64encode($col, true) |
Results - encode:
The transformed dataset now looks like the following. Note the padding (equals signs) at the end of some of the values. Padding is added by default.
IntegerField | StringField | ssn |
---|---|---|
LTIwODI4NjM5NDI= | VGhpcyBpcyBhIHRlc3Qgc3RyaW5nLg== | OTg3NjU0MzIx |
MjAxMjk5NDk4OQ== | IkhlbGxvLCB3b3JsZC4i | OTg3NjU0MzIy |
LTE2MzcxODc5MTg= | IkhlbGxvLCB3b3JsZC4gSGVsbG8sIHdvcmxkLiBIZWxsbywgd29ybGQuIg== | OTg3NjU0MzIz |
LTExNDQxOTQwMzU= | Znlp | OTg3NjU0MzI0 |
LTk3MTg3MjU0Mw== | OTg3NjU0MzI1 | |
MzUzOTc3NTgz | VGhpcyBpcyBhIHRlc3Qgc3RyaW5nLg== | OTg3LTY1LTQzMjE= |
LTM2NjU4MzY2Nw== | IkhlbGxvLCB3b3JsZC4i | OTg3LTY1LTQzMjI= |
LTU3MzExNzU1Mw== | IkhlbGxvLCB3b3JsZC4gSGVsbG8sIHdvcmxkLiBIZWxsbywgd29ybGQuIg== | OTg3LTY1LTQzMjM= |
MjA1MTA0MTk3MA== | Znlp | OTg3LTY1LTQzMjQ= |
NTIyNjkxMDg2 | OTg3LTY1LTQzMjU= |
Transformation - decode:
The following transformation can be used to decode all of the columns:
Transformation Name | |
---|---|
Parameter: Columns | All |
Parameter: Formula | base64decode($col) |
Results - decode:
IntegerField | StringField | ssn |
---|---|---|
-2082863942 | This is a test string. | 987654321 |
2012994989 | "Hello, world." | 987654322 |
-1637187918 | "Hello, world. Hello, world. Hello, world." | 987654323 |
-1144194035 | fyi | 987654324 |
-971872543 | 987654325 | |
353977583 | This is a test string. | 987-65-4321 |
-366583667 | "Hello, world." | 987-65-4322 |
-573117553 | "Hello, world. Hello, world. Hello, world." | 987-65-4323 |
2051041970 | fyi | 987-65-4324 |
522691086 | 987-65-4325 |