「编码函数」、「加密函数」、「签名函数」等常用于进行API加密认证取数时的 Token 生成。
本文主要介绍 FineDataLink 中 SparkSQL 算子支持的编码函数、环境变量等等。
文档示例详情参见:
API取数-SHA2加密身份验证&按页数取数
API取数-易流云MD5加密
1)base64(expr):转换 expr 为 base 64 字符串。
2)unbase64(expr):以二进制形式返回已解码的 base64 字符串。
注1:相关函数默认大写。
注2:如需要引入字符串,字符串不区分单双引号:。
UUID()
示例:SELECT UUID()
SELECT uuid()
注:不支持改变长度
UNIX_TIMESTAMP()
示例:SELECT UNIX_TIMESTAMP()
示例:
例如,用户需要使用「沃丰接口」取数,接口鉴权方式需要使用 unix time,nonce 为请求的唯一标识,值是由调用者提供的任意字符串,15分钟内此字符串只能被使用一次;在这里我们使用 SQL 的 uuid 函数生成。因此需要使用上述两个环境变量。
直接将 SparkSQL 作为输入源,输入 SQL 语句:
SELECT UNIX_TIMESTAMP(now()) AS time_str, UUID() AS uuid_str;
即可使用环境变量,取出两个指定的值,如下图所示:
BASE16(expr)
示例:SELECT BASE16('FineDataLink')
BASE64(expr)
示例:SELECT BASE64('FineDataLink')
URLENCODE(expr)
示例:SELECT URLENCODE('FineDataLink')
MD5(expr)
示例:SELECT MD5('FineDataLink')
SHA(expr)
示例:SELECT SHA('FineDataLink')
SHA1(expr)
示例:SELECT SHA1('FineDataLink')
SHA2(expr, bitLength)
注:bitLength为SHA2的位数,支持SHA-224、SHA-256、SHA-384和 SHA-512,默认为SHA256。
示例:SELECT SHA2('FineDataLink',256)
RSA(expr,secretKey,keyFormat)
注:secretKey为输入的密钥、格式为base64编码,keyFormat为密钥格式、值为'PKCS1'和'PKCS8'(不区分格式的大小写),本函数返回值格式也为base64编码
示例:SELECT RSA( 'FineDataLink' , 'MIIBCgKCAQEAnLdoA3ba57YHBAenYbLGTcdC48VVvVVDXV6N/W+1FztBRjvNPV1DMOcIJBrveTlgKug2PCVynaIttaNql6p/+Bm4G41kyZYy7RSaUCaJ3ryjcXsKfCltnG9vCwbIN+bVchxRzj739zIA1tBHn9v22PhFcEfsSAy2G2EwM4bQ38n2UrMse9wbLUGT0kzyquwPQs7vriU+1XBkrdssoAqbwgW5yUqxDosYB5h7D1YTW0qKkJ6PPNnLXbMv2Meyjxq1sbWoF/m8uboaKklqal1ep5UqTp9OFNOaTrVyXY4Gkt7wq3OoNvk92cJ1fHz9wnriGo+oNut9gQr1WVjOzRkAwwIDAQAB' , 'PKCS1')
本文第六节中获取了timestamp、nonce 两个值,签名 sign 为 email 、open_api_token、timestamp、nonce、sign_version 共同组合生成 sign=SHA256(email&open_api_token×tamp&nonce&sign_version),使用了加密函数。
紧接着本文第六节的算子,新增 SparkSQL 并输入
SELECT SHA2(CONCAT("email&open_api_token",time_str,"&",uuid_str,"&v2") ,256) as sign_str,time_str,uuid_str from SparkSQL
HMACMD5(expr,secretKey,format)
其中,secretKey为输入的秘钥,format格式值可选为'HEX'或'BASE64'(不区分格式的大小写)
示例:SELECT HMACMD5( 'FineDataLink' , 'Im a secret key' , 'HEX')
HMACSHA1(expr,secretKey,format)
示例:SELECT HMACSHA1( 'FineDataLink' , 'Im a secret key' , 'HEX')
HMACSHA256(expr,secretKey,format)
示例:SELECT HMACSHA256( 'FineDataLink' , 'Im a secret key' , 'HEX')
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
Submitted successfully
Network busy