signature

来自于:官方立即使用

异步接口

md5 sha1 aes aesDecode base64 base64Decode rsaKeyPair rsa rsaDecode aesECB aesDecodeECB desECB desDecodeECB hmacSha1 aesCBC aesDecodeCBC sha256 aesFile

同步接口

md5Sync sha1Sync aesSync aesDecodeSync base64Sync base64DecodeSync rsaKeyPairSync rsaSync rsaDecodeSync aesECBSync aesDecodeECBSync desECBSync desDecodeECBSync hmacSha1Sync aesCBCSync aesDecodeCBCSync sha256Sync aesFileSync

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

signature 是一个加密模块,可以把指定字符串按照 MD5、AES、BASE64、sha1方式加密,本模块的每个接口都实现了两套方法,同步和异步。开发者可按需求自行选择接口调用。

注意:MD5 SHA1 是不可逆的,只有加密没有解密

异步接口

md5

将字符串进行 MD5 签名

md5({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要签名的字符串

uppercase:

  • 类型:布尔
  • 描述:(可选项)签名后返回的字符串为大写
  • 默认:true

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否签名成功,true|false
  3. value: '' //字符串类型;MD5 签名后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.md5({
  3. data: 'APICloud'
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sha1

将字符串进行 sha1 加密

sha1({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

uppercase:

  • 类型:布尔
  • 描述:(可选项)加密后返回的字符串为大写
  • 默认:true

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否加密成功,true|false
  3. value: '' //字符串类型;SHA1 加密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.sha1({
  3. data: 'APICloud'
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aes

将字符串进行 AES 加密(加密模式和填充模式分别为:CBC/PKCS7Padding;初始iv为:{0xA,1,0xB,5,4,0xF,7,9,0x17,3,1,6,8,0xC,0xD,91},加密等级位数:aes-256-cbc)

aes({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

key:

  • 类型:字符串
  • 描述:aes 加密算法使用的 key

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否加密成功,true|false
  3. value: '' //字符串类型;AES 加密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.aes({
  3. data: 'APICloud',
  4. key: 'boundary'
  5. }, function(ret, err) {
  6. if (ret.status) {
  7. alert(JSON.stringify(ret));
  8. } else {
  9. alert(JSON.stringify(err));
  10. }
  11. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesDecode

将字符串进行 AES 解密(加密模式和填充模式分别为:CBC/PKCS7Padding;初始iv为:{0xA,1,0xB,5,4,0xF,7,9,0x17,3,1,6,8,0xC,0xD,91},加密等级位数:aes-256-cbc)

aesDecode({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要解密的字符串

key:

  • 类型:字符串
  • 描述:aes 解密算法使用的 key

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否解密成功,true|false
  3. value: '' //字符串类型;AES 解密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.aesDecode({
  3. data: '******',
  4. key: 'boundary'
  5. }, function(ret, err) {
  6. if (ret.status) {
  7. alert(JSON.stringify(ret));
  8. } else {
  9. alert(JSON.stringify(err));
  10. }
  11. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

base64

将字符串进行 BASE64 加密

base64({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否加密成功,true|false
  3. value: '' //字符串类型;BASE64 加密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.base64({
  3. data: 'APICloud'
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

base64Decode

将字符串进行 BASE64 解密

base64Decode({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要解密的字符串

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否解密成功,true|false
  3. value: '' //字符串类型;BASE64 解密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.base64Decode({
  3. data: '******'
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

rsaKeyPair

获取rsa密钥对, 此接口仅支持 Android 平台

rsaKeyPair({params})

params

keyLength:

  • 类型:数字
  • 描述:秘钥长度(512~2048)
  • 默认:1024

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. privateKey {
  3. encoded '' //私钥编码
  4. modulus '' //系数
  5. exponent '' //指数
  6. },
  7. publicKey {
  8. encoded '' //公钥编码
  9. modulus '' //系数
  10. exponent '' //指数
  11. }
  12. }

示例代码

  1. var signature = api.require('signature');
  2. signature.rsaKeyPair(
  3. function(ret) {
  4. alert(JSON.stringify(ret));
  5. }
  6. );

可用性

Android系统

可提供的1.0.0及更高版本

rsa

rsa加密

rsa({params})

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

publicKey:

  • 类型:字符串
  • 描述:加密所需公钥,注意:在android平台上直接传 encoded(字符串),在 iOS 平台上需传公钥文件(.der 格式)的地址路径(仅支持本地路径fs://、widget://)
  • 提示:iOS 平台不需要使用 rsaKeyPair 接口生成密钥对,而是需要在 mac 终端下,使用 openssl 命令行来生成密钥对,然后将生成的公钥 .der 文件(路径)传给模块即可。如:

    1. //生成长度为 1024 的私钥:private_key.pem (文件名可自定义)
    2. openssl genrsa -out private_key.pem 1024
    3. //使用私钥文件创建所需的证书:rsaCertReq.csr(文件名可自定义)
    4. openssl req -new -key private_key.pem -out rsaCertReq.csr
    5. //使用 x509 创建证书:rsaCert.crt(文件名可自定义)
    6. openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt
    7. //生成 .der 格式的公钥:public_key.der(文件名可自定义)
    8. openssl x509 -outform der -in rsaCert.crt -out public_key.der
    9. //生成解密所需 .p12文件:private_key.p12(文件名可自定义)
    10. openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt

    具体可网上搜索“openssl 生成密匙对” 的使用方法,注意记得生成过程中输入的密码,解密需要用到。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否加密成功,true|false
  3. value: '' //字符串类型;rsa 加密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.rsa({
  3. data: 'APICloud',
  4. publicKey: ''
  5. }, function(ret) {
  6. alert(JSON.stringify(ret));
  7. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

rsaDecode

rsa解密

rsaDecode({params})

params

data:

  • 类型:字符串
  • 描述:要解密的字符串

privateKey:

  • 类型:字符串
  • 描述:解密所需私钥,注意:在android平台上直接传私钥 encoded(字符串),在 iOS 平台上需传私钥文件(.p12 格式)的地址路径(仅支持本地路径fs://、widget://)
  • 提示:iOS 平台不需要使用 rsaKeyPair 接口生成密钥对,而是需要在 mac 终端下,使用 openssl 命令行来生成密钥对,然后将生成的私钥 .p12 文件(路径)传给模块即可,生成方法参考 rsa 接口 publicKey 参数详述。

password:

  • 类型:字符串
  • 描述:使用 openssl 命令生成密钥对时所输入的私钥文件提取密码 仅 iOS 平台需要

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否加密成功,true|false
  3. value: '' //字符串类型;rsa 解密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.rsaDecode({
  3. data: 'APICloud',
  4. privateKey: '',
  5. password: ''
  6. },function(ret, err) {
  7. alert(JSON.stringify(ret));
  8. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesECB

将字符串进行 AES 加密(加密模式和填充模式分别为:ECB/PKCS7Padding;数据块:256位;输出:base64;字符集:utf8)

注意:本接口会对加密后的内容再进行一次 base64 编码。

aesECB({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

key:

  • 类型:字符串
  • 描述:aes 加密算法使用的 key

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否加密成功,true|false
  3. value: '' //字符串类型;AES 加密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.aesECB({
  3. data: 'APICloud',
  4. key: 'boundary'
  5. }, function(ret, err) {
  6. if (ret.status) {
  7. alert(JSON.stringify(ret));
  8. } else {
  9. alert(JSON.stringify(err));
  10. }
  11. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesDecodeECB

将字符串进行 AES 解密(加密模式和填充模式分别为:ECB/PKCS7Padding;数据块:256位;输出:base64;字符集:utf8)

注意:本接口会先对要解密的内容进行一次 base64 解码。

aesDecodeECB({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要解密的字符串

key:

  • 类型:字符串
  • 描述:aes 解密算法使用的 key

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否解密成功,true|false
  3. value: '' //字符串类型;AES 解密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.aesDecodeECB({
  3. data: '******',
  4. key: 'boundary'
  5. }, function(ret, err) {
  6. if (ret.status) {
  7. alert(JSON.stringify(ret));
  8. } else {
  9. alert(JSON.stringify(err));
  10. }
  11. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

desECB

将字符串进行 DES 加密(加密模式和填充模式分别为:ECB/PKCS5Padding)

注意:本加密过程是:base64签名-》DES 加密-》转换为16进制字符串

desECB({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

key:

  • 类型:字符串
  • 描述:des 加密算法使用的 key

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否加密成功,true|false
  3. value: '' //字符串类型;DES 加密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.desECB({
  3. data: 'APICloud',
  4. key: 'boundary'
  5. }, function(ret, err) {
  6. if (ret.status) {
  7. alert(JSON.stringify(ret));
  8. } else {
  9. alert(JSON.stringify(err));
  10. }
  11. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

desDecodeECB

将字符串进行 DES 解密(加密模式和填充模式分别为:ECB/PKCS5Padding)

desDecodeECB({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要解密的字符串

key:

  • 类型:字符串
  • 描述:des 解密算法使用的 key

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否解密成功,true|false
  3. value: '' //字符串类型;DES 解密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.desDecodeECB({
  3. data: '******',
  4. key: 'boundary'
  5. }, function(ret, err) {
  6. if (ret.status) {
  7. alert(JSON.stringify(ret));
  8. } else {
  9. alert(JSON.stringify(err));
  10. }
  11. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hmacSha1

将字符串进行 hmacSha1 加密

hmacSha1({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

key:

  • 类型:字符串
  • 描述:秘钥

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否加密成功,true|false
  3. value: '' //字符串类型;hmacSha1 加密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.hmacSha1({
  3. data: 'APICloud',
  4. key: 'key'
  5. }, function(ret, err) {
  6. if (ret.status) {
  7. alert(JSON.stringify(ret));
  8. } else {
  9. alert(JSON.stringify(err));
  10. }
  11. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesCBC

将字符串进行 AES 加密(加密模式和填充模式分别为:CBC/PKCS7Padding;加密等级位数:aes-128-cbc)

注意:本接口加密后会把字符串十六进制转换输出

aesCBC({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

key:

  • 类型:字符串
  • 描述:aes 加密算法使用的 key

iv:

  • 类型:字符串
  • 描述:aes 加密算法使用的偏移量

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否加密成功,true|false
  3. value: '' //字符串类型;AES 加密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.aesCBC({
  3. data: 'APICloud',
  4. key: 'boundary',
  5. iv:'0102030405060708'
  6. }, function(ret, err) {
  7. if (ret.status) {
  8. alert(JSON.stringify(ret));
  9. } else {
  10. alert(JSON.stringify(err));
  11. }
  12. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesDecodeCBC

将字符串进行 AES 解密(加密模式和填充模式分别为:CBC/PKCS7Padding;加密等级位数:aes-128-cbc)

注意:本接口会首先将字符串十六进制解析成二进制数据流

aesDecode({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要解密的字符串,注意必须是十六进制字符串

key:

  • 类型:字符串
  • 描述:aes 解密算法使用的 key

iv:

  • 类型:字符串
  • 描述:aes 加密算法使用的偏移量

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否解密成功,true|false
  3. value: '' //字符串类型;AES 解密后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.aesDecodeCBC({
  3. data: '******',
  4. key: 'boundary',
  5. iv:'0102030405060708'
  6. }, function(ret, err) {
  7. if (ret.status) {
  8. alert(JSON.stringify(ret));
  9. } else {
  10. alert(JSON.stringify(err));
  11. }
  12. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sha256

将字符串进行 sha256 签名

md5({params}, callback(ret, err))

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否成功,true|false
  3. value: '' //字符串类型;sha256签名后的字符串
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:未知错误
  4. //1:数据源(data)为空
  5. }

示例代码

  1. var signature = api.require('signature');
  2. signature.sha256({
  3. data: 'APICloud'
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesFile

将文件进行 AES 加密解密(填充模式为:PKCS7Padding;加密等级位数:aes-256-cbc

aesFile({params}, callback(ret, err))

params

action:

  • 类型:字符串
  • 描述:指明加密解密功能
  • 默认:encode
  • 取值范围:
    • encode:加密
    • decode:解密

path:

  • 类型:字符串
  • 描述:要加密/解密的文件地址,要求本地路径(fs://)

key:

  • 类型:字符串
  • 描述:aes 加密/解密算法使用的 key

iv:

  • 类型:字符串
  • 描述:aes 加密/解密算法使用的 iv

savePath:

  • 类型:字符串
  • 描述:(可选项)加密/解密后的文件保存路径,要求本地路径(fs://),
  • 默认:模块自动生成的沙箱缓存目录下路径

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否加密成功,true|false
  3. absolutePath: '' //字符串类型;AES 加密/解密后的文件绝对路径
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //-1:加密解密发生错误
  4. //1:源文件路径错误
  5. //2:加密解密后的文件生成失败
  6. //3:数据读取失败
  7. }

示例代码

  1. var signature = api.require('signature');
  2. signature.aesFile({
  3. action: 'encode',
  4. path: 'fs://a.txt',
  5. key: 'boundary',
  6. iv:'apicloud'
  7. }, function(ret, err) {
  8. if (ret.status) {
  9. alert(JSON.stringify(ret));
  10. } else {
  11. alert(JSON.stringify(err));
  12. }
  13. });

可用性

iOS系统,Android系统

可提供的1.0.6及更高版本

同步接口

md5Sync

将字符串进行 MD5 签名(本过程为同步)

md5Sync({params})

params

data:

  • 类型:字符串
  • 描述:要签名的字符串

uppercase:

  • 类型:布尔
  • 描述:(可选项)签名后返回的字符串为大写
  • 默认:true

return

value:

  • 类型:字符串
  • 描述:签名后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.md5Sync({
  3. data: 'APICloud'
  4. });
  5. alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sha1Sync

将字符串进行 SHA1 加密(本加密过程为同步)

sha1Sync({params})

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

uppercase:

  • 类型:布尔
  • 描述:(可选项)加密后返回的字符串为大写
  • 默认:true

return

value:

  • 类型:字符串
  • 描述:加密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.sha1Sync({
  3. data: 'APICloud'
  4. });
  5. alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesSync

将字符串进行 AES 加密(本加密过程为同步),加密模式和填充模式分别为:CBC/PKCS7Padding;初始iv为:{0xA,1,0xB,5,4,0xF,7,9,0x17,3,1,6,8,0xC,0xD,91};加密等级位数:aes-256-cbc

aesSync({params})

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

key:

  • 类型:字符串
  • 描述:aes 加密算法使用的 key

return

value:

  • 类型:字符串
  • 描述:加密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.aesSync({
  3. data: 'APICloud',
  4. key: 'boundary'
  5. });
  6. alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesDecodeSync

将字符串进行 AES 解密(本解密过程为同步),加密模式和填充模式分别为:CBC/PKCS7Padding;初始iv为:{0xA,1,0xB,5,4,0xF,7,9,0x17,3,1,6,8,0xC,0xD,91};加密等级位数:aes-256-cbc

aesDecodeSync({params})

params

data:

  • 类型:字符串
  • 描述:要解密的字符串

key:

  • 类型:字符串
  • 描述:aes 解密算法使用的 key

return

value:

  • 类型:字符串
  • 描述:解密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.aesDecodeSync({
  3. data: '******',
  4. key: 'boundary'
  5. });
  6. alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

base64Sync

将字符串进行 BASE64 加密(本加密过程为同步)

base64Sync({params})

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

uppercase:

  • 类型:布尔
  • 描述:(可选项)加密后返回的字符串为大写
  • 默认:true

return

value:

  • 类型:字符串
  • 描述:加密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.base64Sync({
  3. data: 'APICloud'
  4. });
  5. alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

base64DecodeSync

将字符串进行 BASE64 解密(本解密过程为同步)

base64DecodeSync({params})

params

data:

  • 类型:字符串
  • 描述:要解密的字符串

uppercase:

  • 类型:布尔
  • 描述:(可选项)解密后返回的字符串为大写
  • 默认:true

return

value:

  • 类型:字符串
  • 描述:解密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.base64DecodeSync({
  3. data: '******'
  4. });
  5. alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

rsaKeyPairSync

获取rsa密钥对(同步),此接口仅支持 Android 平台

rsaKeyPairSync({params})

params

keyLength:

  • 类型:数字
  • 描述:秘钥长度(512~2048)
  • 默认:1024

return

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. privateKey: { //JSON对象;私钥信息
  3. encoded: '' //字符串类型;私钥编码
  4. modulus: '' //字符串类型;系数
  5. exponent: '' //字符串类型;指数
  6. }
  7. publicKey: { //JSON对象;公钥信息
  8. encoded: '' //字符串类型;公钥编码
  9. modulus: '' //字符串类型;系数
  10. exponent: '' //字符串类型;指数
  11. }
  12. }

示例代码

  1. var signature = api.require('signature');
  2. var ret = signature.rsaKeyPairSync();
  3. alert(JSON.stringify(ret));

可用性

Android系统

可提供的 1.0.0 及更高版本

rsaSync

rsa加密 (本加密为同步)

rsaSync({params})

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

publicKey:

  • 类型:字符串
  • 描述:加密所需公钥,注意:在android平台上直接传 encoded(字符串),在 iOS 平台上需传公钥文件(.der 格式)的地址路径(仅支持本地路径fs://、widget://)
  • 提示:iOS 平台不需要使用 rsaKeyPair 接口生成密钥对,而是需要在 mac 终端下,使用 openssl 命令行来生成密钥对,然后将生成的公钥 .der 文件(路径)传给模块即可。如这里使用语句:

    1. //生成长度为 1024 的私钥:private_key.pem (文件名可自定义)
    2. openssl genrsa -out private_key.pem 1024
    3. //使用私钥文件创建所需的证书:rsaCertReq.csr(文件名可自定义)
    4. openssl req -new -key private_key.pem -out rsaCertReq.csr
    5. //使用 x509 创建证书:rsaCert.crt(文件名可自定义)
    6. openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt
    7. //生成 .der 格式的公钥:public_key.der(文件名可自定义)
    8. openssl x509 -outform der -in rsaCert.crt -out public_key.der
    9. //生成解密所需 .p12文件:private_key.p12(文件名可自定义)
    10. openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt

    具体可网上搜索“openssl 生成密匙对” 的使用方法,注意记得生成过程中输入的密码,解密需要用到。

return

value:

  • 类型:字符串
  • 描述:加密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.rsaSync({
  3. data: 'APICloud',
  4. publicKey: ''
  5. });
  6. alert(JSON.stringify(value));

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

rsaDecodeSync

rsa解密 (同步)

rsaDecodeSync({params})

params

data:

  • 类型:字符串
  • 描述:要解密的字符串

privateKey:

  • 类型:字符串
  • 描述:解密所需私钥,注意:在android平台上直接传私钥 encoded(字符串),在 iOS 平台上需传私钥文件(.p12 格式)的地址路径(仅支持本地路径fs://、widget://)
  • 提示:iOS 平台不需要使用 rsaKeyPair 接口生成密钥对,而是需要在 mac 终端下,使用 openssl 命令行来生成密钥对,然后将生成的私钥 .p12 文件(路径)传给模块即可,生成方法参考 rsaSync 接口 publicKey 参数详述。

password:

  • 类型:字符串
  • 描述:使用 openssl 命令生成密钥对时所输入的私钥文件提取密码 仅 iOS 平台需要

return

value:

  • 类型:字符串
  • 描述:加密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.rsaDecodeSync({
  3. data: 'APICloud',
  4. privateKey: '',
  5. password: ''
  6. });
  7. alert(JSON.stringify(value));

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesECBSync

将字符串进行 AES 加密(本加密过程为同步),加密模式和填充模式分别为:ECB/PKCS7Padding;数据块:256位;输出:base64;字符集:utf8

注意:本接口会对加密后的内容再次进行 base64 编码。

aesECBSync({params})

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

key:

  • 类型:字符串
  • 描述:aes 加密算法使用的 key

return

value:

  • 类型:字符串
  • 描述:加密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.aesECBSync({
  3. data: 'APICloud',
  4. key: 'boundary'
  5. });
  6. alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesDecodeECBSync

将字符串进行 AES 解密(本解密过程为同步),加密模式和填充模式分别为:WCB/PKCS7Padding;数据块:256位;输出:base64;字符集:utf8

注意:本接口会先对要解密的内容进行一次 base64 解码。

aesDecodeECBSync({params})

params

data:

  • 类型:字符串
  • 描述:要解密的字符串

key:

  • 类型:字符串
  • 描述:aes 解密算法使用的 key

return

value:

  • 类型:字符串
  • 描述:解密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.aesDecodeECBSync({
  3. data: '******',
  4. key: 'boundary'
  5. });
  6. alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

desECBSync

将字符串进行 DES 加密(本加密过程为同步),加密模式和填充模式分别为:ECB/PKCS5Padding

注意:本加密过程是:base64签名-》DES 加密-》转换为16进制字符串

desECBSync({params})

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

key:

  • 类型:字符串
  • 描述:des 加密算法使用的 key

return

value:

  • 类型:字符串
  • 描述:加密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.desECBSync({
  3. data: 'APICloud',
  4. key: 'boundary'
  5. });
  6. alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

desDecodeECBSync

将字符串进行 DES 解密(本解密过程为同步),加密模式和填充模式分别为:ECB/PKCS5Padding

desDecodeECBSync({params})

params

data:

  • 类型:字符串
  • 描述:要解密的字符串

key:

  • 类型:字符串
  • 描述:des 解密算法使用的 key

return

value:

  • 类型:字符串
  • 描述:解密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.desDecodeECBSync({
  3. data: '******',
  4. key: 'boundary'
  5. });
  6. alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hmacSha1Sync

将字符串进行 hmacSha1 加密(本加密过程为同步)

hmacSha1Sync({params})

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

key:

  • 类型:字符串
  • 描述:秘钥

return

value:

  • 类型:字符串
  • 描述:加密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.hmacSha1Sync({
  3. data: 'APICloud',
  4. key: 'key'
  5. });
  6. alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesCBCSync

将字符串进行 AES 加密(加密模式和填充模式分别为:CBC/PKCS7Padding;加密等级位数:aes-128-cbc)

注意:本接口加密后会把字符串十六进制转换输出

aesCBCSync({params})

params

data:

  • 类型:字符串
  • 描述:要加密的字符串

key:

  • 类型:字符串
  • 描述:aes 加密算法使用的 key

iv:

  • 类型:字符串
  • 描述:aes 加密算法使用的偏移量

return

value:

  • 类型:字符串
  • 描述:加密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.aesCBCSync({
  3. data: 'APICloud',
  4. key: 'boundary',
  5. iv:'0102030405060708'
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesDecodeCBCSync

将字符串进行 AES 解密(加密模式和填充模式分别为:CBC/PKCS7Padding;加密等级位数:aes-128-cbc)

注意:本接口会首先将字符串十六进制解析成二进制数据流

aesDecodeSync({params})

params

data:

  • 类型:字符串
  • 描述:要解密的字符串,注意必须是十六进制字符串

key:

  • 类型:字符串
  • 描述:aes 解密算法使用的 key

iv:

  • 类型:字符串
  • 描述:aes 加密算法使用的偏移量

return

value:

  • 类型:字符串
  • 描述:解密后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.aesDecodeCBCSync({
  3. data: '******',
  4. key: 'boundary',
  5. iv:'0102030405060708'
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sha256Sync

将字符串进行 sha256 签名(本过程为同步)

sha256Sync({params})

params

data:

  • 类型:字符串
  • 描述:要签名的字符串

return

value:

  • 类型:字符串
  • 描述:签名后的字符串

示例代码

  1. var signature = api.require('signature');
  2. var value = signature.sha256Sync({
  3. data: 'APICloud'
  4. });
  5. alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesFileSync

将文件进行 AES 加密解密(填充模式为:PKCS7Padding;加密等级位数:aes-256-cbc

aesFileSync({params})

params

action:

  • 类型:字符串
  • 描述:指明加密解密功能
  • 默认:encode
  • 取值范围:
    • encode:加密
    • decode:解密

path:

  • 类型:字符串
  • 描述:要加密/解密的文件地址,要求本地路径(fs://)

key:

  • 类型:字符串
  • 描述:aes 加密/解密算法使用的 key

iv:

  • 类型:字符串
  • 描述:aes 加密/解密算法使用的 iv

savePath:

  • 类型:字符串
  • 描述:(可选项)加密/解密后的文件保存路径,要求本地路径(fs://),
  • 默认:模块自动生成的沙箱缓存目录下路径

return

value:

  • 类型:字符串
  • 描述:AES 加密/解密后的文件绝对路径

示例代码

  1. var signature = api.require('signature');
  2. var newPath = signature.aesFileSync({
  3. action: 'encode',
  4. path: 'fs://a.txt',
  5. key: 'boundary',
  6. iv:'apicloud'
  7. });
  8. api.alert({msg:newPath});

可用性

iOS系统,Android系统

可提供的1.0.6及更高版本

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。