signature

sha1 aesDecode base64Decode rsa aesECB desECB hmacSha1 aesDecodeCBC aesFile

同步接口

sha1Sync aesDecodeSync base64DecodeSync rsaSync aesECBSync desECBSync hmacSha1Sync aesDecodeCBCSync aesFileSync

论坛示例

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

概述

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

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

异步接口

md5

将字符串进行 MD5 签名

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

params

data:

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

uppercase:

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

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:

err:

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

示例代码

  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. });

可用性

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 对象
  • 内部字段:

err:

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

示例代码

  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

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

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 对象
  • 内部字段:

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. alert(JSON.stringify(err));
  8. }
  9. });

可用性

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:

  • 类型:字符串
  • 描述:要解密的字符串
  • 类型:布尔
  • 描述:(可选项)解密后返回的字符串为大写
  • 默认: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:

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

示例代码

可用性

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. api.alert({msg:newPath});

可用性

iOS系统,Android系统

论坛示例

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