Encode
该函数根据传入的参数对数据进行编码。
Encode(algo, inputFormat, outputFormat, data)
Encode(algo, inputFormat, outputFormat, data, keyFormat, key)示例
-
Encode函数调用例子。
javascriptfunction 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 }pythondef 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")) # 输出:698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84barustfn 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",对字符串编码、解码。javascriptfunction 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) }pythondef 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)rustfn 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 | 是 | 编码、哈希、加密或压缩使用的算法,例如 |
inputFormat | string | 是 | 用于指定 |
outputFormat | string | 是 | 用于指定输出的数据格式。 |
data | string | 是 | 所要处理的数据。 |
keyFormat | string | 否 | 用于指定 |
key | string | 否 |
|
参考
备注
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 |
| Ed25519 | ed25519、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。