输入/搜索内容
内置函数
Global
Version
IsVirtual
GetOS
GetPid
GetMeta
Sleep
Unix
UnixNano
_D
GetCommand
GetLastError
SetErrorFilter
_N
_C
_Cross
JSON.parse
JSON.stringify
Encode
MD5
UUID
Log
Market
Trade
Account
Futures
Exchange
IO
Network
Storage
Threads
TA
Talib
OS
结构体
内置变量与常量
通用约定
交易所

该函数根据传入的参数对数据进行编码。

Encode(algo, inputFormat, outputFormat, data)
Encode(algo, inputFormat, outputFormat, data, keyFormat, key)

示例

  • Encode函数调用例子。

    javascript
    function main() { Log(Encode("raw", "raw", "hex", "example", "raw", "123")) // 输出:6578616d706c65 Log(Encode("raw", "raw", "hex", "example")) // 输出:6578616d706c65 Log(Encode("sha256", "raw", "hex", "example", "raw", "123")) // 输出:698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba Log(Encode("sha256", "raw", "hex", "example", "", "123")) // 输出:50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545c Log(Encode("sha256", "raw", "hex", "example", null, "123")) // 输出:50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545c Log(Encode("sha256", "raw", "hex", "example", "string", "123")) // 输出:698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba Log(Encode("raw", "raw", "hex", "123")) // 输出:313233 Log(Encode("raw", "raw", "base64", "123")) // 输出:MTIz Log(Encode("sha256", "raw", "hex", "example", "hex", "313233")) // 输出:698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba Log(Encode("sha256", "raw", "hex", "example", "base64", "MTIz")) // 输出:698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba }
    python
    def main(): Log(Encode("raw", "raw", "hex", "example", "raw", "123")) # 输出:6578616d706c65 Log(Encode("raw", "raw", "hex", "example", "", "")) # 输出:6578616d706c65 Log(Encode("sha256", "raw", "hex", "example", "raw", "123")) # 输出:698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba Log(Encode("sha256", "raw", "hex", "example", "", "123")) # 输出:50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545c Log(Encode("sha256", "raw", "hex", "example", "string", "123")) # 输出:698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba Log(Encode("raw", "raw", "hex", "123", "", "")) # 输出:313233 Log(Encode("raw", "raw", "base64", "123", "", "")) # 输出:MTIz Log(Encode("sha256", "raw", "hex", "example", "hex", "313233")) # 输出:698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba Log(Encode("sha256", "raw", "hex", "example", "base64", "MTIz")) # 输出:698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba
    rust
    fn main() { // Rust 的 Encode() 函数6个参数均为必填,不加密时 keyFormat、key 传入空字符串 Log!(Encode("raw", "raw", "hex", "example", "raw", "123")); // 输出:6578616d706c65 Log!(Encode("raw", "raw", "hex", "example", "", "")); // 输出:6578616d706c65 Log!(Encode("sha256", "raw", "hex", "example", "raw", "123")); // 输出:698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba Log!(Encode("sha256", "raw", "hex", "example", "", "123")); // 输出:50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545c Log!(Encode("sha256", "raw", "hex", "example", "string", "123")); // 输出:698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba Log!(Encode("raw", "raw", "hex", "123", "", "")); // 输出:313233 Log!(Encode("raw", "raw", "base64", "123", "", "")); // 输出:MTIz Log!(Encode("sha256", "raw", "hex", "example", "hex", "313233")); // 输出:698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba Log!(Encode("sha256", "raw", "hex", "example", "base64", "MTIz")); // 输出:698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba }
  • 参数algo也支持:"text.encoder.utf8","text.decoder.utf8","text.encoder.gbk","text.decoder.gbk",对字符串编码、解码。

    javascript
    function main(){ var ret1 = Encode("text.encoder.utf8", "raw", "hex", "你好") Log(ret1) // 输出:e4bda0e5a5bd var ret2 = Encode("text.decoder.utf8", "hex", "string", ret1) Log(ret2) var ret3 = Encode("text.encoder.gbk", "raw", "hex", "你好") Log(ret3) // 输出:c4e3bac3 var ret4 = Encode("text.decoder.gbk", "hex", "string", ret3) Log(ret4) }
    python
    def main(): ret1 = Encode("text.encoder.utf8", "raw", "hex", "你好", "", "") Log(ret1) # 输出:e4bda0e5a5bd ret2 = Encode("text.decoder.utf8", "hex", "string", ret1, "", "") Log(ret2) ret3 = Encode("text.encoder.gbk", "raw", "hex", "你好", "", "") Log(ret3) # 输出:c4e3bac3 ret4 = Encode("text.decoder.gbk", "hex", "string", ret3, "", "") Log(ret4)
    rust
    fn main() { // Rust 的 Encode() 函数6个参数均为必填,不加密时 keyFormat、key 传入空字符串 let ret1 = Encode("text.encoder.utf8", "raw", "hex", "你好", "", ""); Log!(ret1); // 输出:e4bda0e5a5bd let ret2 = Encode("text.decoder.utf8", "hex", "string", &ret1, "", ""); Log!(ret2); let ret3 = Encode("text.encoder.gbk", "raw", "hex", "你好", "", ""); Log!(ret3); // 输出:c4e3bac3 let ret4 = Encode("text.decoder.gbk", "hex", "string", &ret3, "", ""); Log!(ret4); }

返回值

类型描述

string

编码、加密之后的数据。

参数

名称类型必填描述

algo

string

是

编码、哈希、加密或压缩使用的算法,例如raw、sha256、text.encoder.utf8、aes.encrypt;全部取值见备注。

inputFormat

string

是

用于指定data参数的数据格式。inputFormat参数支持设置为:"raw","hex","base64","string"其中之一。"raw"表示数据为原始数据,"hex"表示数据为hex编码,"base64"表示数据为base64编码,"string"表示数据为字符串。此外还支持"base64.url"、"base64.rawurl"(URL安全的base64编码,后者不带填充)以及"latin1"(每个字符的码点即一个字节)。

outputFormat

string

是

用于指定输出的数据格式。outputFormat参数支持设置为:"raw","hex","base64","string"其中之一。"raw"表示数据为原始数据,"hex"表示数据为hex编码,"base64"表示数据为base64编码,"string"表示数据为字符串。此外还支持"base64.url"、"base64.rawurl"(URL安全的base64编码,后者不带填充)。"raw"、"string"输出时每个字节对应一个字符(按latin1)。

data

string

是

所要处理的数据。

keyFormat

string

否

用于指定key参数的数据格式。keyFormat参数支持设置为:"raw","hex","base64","string"其中之一。"raw"表示数据为原始数据,"hex"表示数据为hex编码,"base64"表示数据为base64编码,"string"表示数据为字符串。此外还支持"base64.url"、"base64.rawurl"(URL安全的base64编码,后者不带填充)以及"latin1"(每个字符的码点即一个字节)。

key

string

否

HMAC加密时使用的秘钥。
参数algo设置为"sign"或者"signTx"时需要参数key。
参数algo设置为"raw"时不会使用key参数进行HMAC加密(因为HMAC加密必须指定算法)。

参考

备注

Encode()函数仅支持实盘。不传key、keyFormat参数,则不使用key加密。

algo参数的取值:

类别取值
不使用算法raw
签名sign、signTx
哈希(MD、SHA-1、SHA-2)md4、md5、sha1、sha224、sha256、sha384、sha512、sha512.384、sha512.256、sha512.224
哈希(SHA-3、Keccak)keccak256、sha3.224、sha3.256、sha3.384、sha3.512、sha3.keccak256、sha3.keccak512
哈希(其它)ripemd160、blake2b.256、blake2b.512、blake2s.128、blake2s.256
字符串编码、解码text.encoder.utf8、text.decoder.utf8、text.encoder.gbk、text.decoder.gbk
其它字符集text.encoder.字符集名、text.decoder.字符集名,例如text.decoder.big5
Ed25519ed25519、ed25519.seed;可以指定哈希算法,例如ed25519.md5、ed25519.sha512
AES加密、解密aes.encrypt、aes.decrypt,可加模式后缀.cbc(默认)、.cfb、.ecb,例如aes.decrypt.ecb
压缩、解压缩gzip.deflate、gzip.inflate、zlib.deflate、zlib.inflate、raw.deflate、raw.inflate

AES的密钥由key参数传入,长度须为16、24或32字节(对应AES-128、AES-192、AES-256);CBC、CFB模式使用密钥的前16字节作为IV,填充方式为PKCS7。