signature

异步接口

同步接口

论坛示例

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

概述

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

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

异步接口

md5

将字符串进行 MD5 签名

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

params

data:

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

uppercase:

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

callback(ret, err)

ret:

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

err:

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

示例代码

var signature = api.require('signature');
signature.md5({
    data: 'YonBuilder'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sha1

将字符串进行 sha1 加密

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

params

data:

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

uppercase:

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

callback(ret, err)

ret:

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

err:

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

示例代码

var signature = api.require('signature');
signature.sha1({
    data: 'YonBuilder'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

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 对象
  • 内部字段:
{
        status: true    //布尔类型;是否加密成功,true|false
        value: ''       //字符串类型;AES 加密后的字符串
}

err:

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

示例代码

var signature = api.require('signature');
signature.aes({
    data: 'YonBuilder',
    key: 'boundary'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

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 对象
  • 内部字段:
{
        status: true    //布尔类型;是否解密成功,true|false
        value: ''       //字符串类型;AES 解密后的字符串
}

err:

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

示例代码

var signature = api.require('signature');
signature.aesDecode({
    data: '******',
    key: 'boundary'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

base64

将字符串进行 BASE64 加密

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

params

data:

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

callback(ret, err)

ret:

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

err:

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

示例代码

var signature = api.require('signature');
signature.base64({
    data: 'YonBuilder'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

base64Decode

将字符串进行 BASE64 解密

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

params

data:

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

callback(ret, err)

ret:

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

err:

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

示例代码

var signature = api.require('signature');
signature.base64Decode({
    data: '******'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

rsaKeyPair

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

rsaKeyPair({params})

params

keyLength:

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

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    privateKey : {
        encoded : '' //私钥编码
        modulus : '' //系数
        exponent : '' //指数
    },
    publicKey : {
        encoded : '' //公钥编码
        modulus : '' //系数
        exponent : '' //指数
    }
}

示例代码

var signature = api.require('signature');
signature.rsaKeyPair(
    function(ret) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    }
);

可用性

Android系统

可提供的1.0.0及更高版本

rsa

rsa加密

rsa({params})

params

data:

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

publicKey:

  • 类型:字符串

  • 描述:加密所需公钥,注意:在android平台上直接传 encoded(字符串),在 iOS 平台上需传公钥文件(.der 格式)的地址路径(仅支持本地路径fs://、widget://)

  • 提示:iOS 平台不需要使用 rsaKeyPair 接口生成密钥对,而是需要在 mac 终端下,使用 openssl 命令行来生成密钥对,然后将生成的公钥 .der 文件(路径)传给原生插件即可。如:

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

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

callback(ret, err)

ret:

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

err:

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

示例代码

var signature = api.require('signature');
signature.rsa({
    data: 'YonBuilder',
    publicKey: ''
}, function(ret) {
    api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

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 对象
  • 内部字段:
{
    status: true    //布尔类型;是否加密成功,true|false
    value: ''       //字符串类型;rsa 解密后的字符串
}

err:

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

示例代码

var signature = api.require('signature');
signature.rsaDecode({
    data: 'YonBuilder',
    privateKey: '',
    password: ''
},function(ret, err) {
    api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesECB

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

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

params

data:

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

key:

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

encoding:

  • 类型:数字
  • 描述:输出字符串的编码;0:base64,1:hex
  • 默认:0

callback(ret, err)

ret:

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

err:

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

示例代码

var signature = api.require('signature');
signature.aesECB({
    data: 'YonBuilder',
    key: 'boundary'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesDecodeECB

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

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

params

data:

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

key:

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

encoding:

  • 类型:数字
  • 描述:输入字符串的编码;本接口会先对要解密的内容进行一次此字段传入类型解码,需要和aesECB或aesECBSync接口传入一致;0:base64,1:hex
  • 默认:0

callback(ret, err)

ret:

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

err:

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

示例代码

var signature = api.require('signature');
signature.aesDecodeECB({
    data: '******',
    key: 'boundary'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

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 对象
  • 内部字段:
{
        status: true    //布尔类型;是否加密成功,true|false
        value: ''       //字符串类型;DES 加密后的字符串
}

err:

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

示例代码

var signature = api.require('signature');
signature.desECB({
    data: 'YonBuilder',
    key: 'boundary'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

desDecodeECB

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

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

params

data:

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

key:

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

callback(ret, err)

ret:

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

err:

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

示例代码

var signature = api.require('signature');
signature.desDecodeECB({
    data: '******',
    key: 'boundary'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hmacSha1

将字符串进行 hmacSha1 加密

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

params

data:

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

key:

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

callback(ret, err)

ret:

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

err:

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

示例代码

var signature = api.require('signature');
signature.hmacSha1({
    data: 'YonBuilder',
    key: 'key'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

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 对象
  • 内部字段:
{
        status: true    //布尔类型;是否加密成功,true|false
        value: ''       //字符串类型;AES 加密后的字符串
}

err:

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

示例代码

var signature = api.require('signature');
signature.aesCBC({
    data: 'YonBuilder',
    key: 'boundary',
    iv:'0102030405060708'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

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 对象
  • 内部字段:
{
        status: true    //布尔类型;是否解密成功,true|false
        value: ''       //字符串类型;AES 解密后的字符串
}

err:

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

示例代码

var signature = api.require('signature');
signature.aesDecodeCBC({
    data: '******',
    key: 'boundary',
    iv:'0102030405060708'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sha256

将字符串进行 sha256 签名

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

params

data:

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

callback(ret, err)

ret:

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

err:

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

示例代码

var signature = api.require('signature');
signature.sha256({
    data: 'YonBuilder'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

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 对象
  • 内部字段:
{
        status: true       //布尔类型;是否加密成功,true|false
        absolutePath: ''   //字符串类型;AES 加密/解密后的文件绝对路径
}

err:

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

示例代码

var signature = api.require('signature');
signature.aesFile({
   action: 'encode',
    path: 'fs://a.txt',
    key: 'boundary',
    iv:'YonBuilder'
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

iOS系统,Android系统

可提供的1.0.6及更高版本

同步接口

md5Sync

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

md5Sync({params})

params

data:

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

uppercase:

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

return

value:

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

示例代码

var signature = api.require('signature');
var value = signature.md5Sync({
    data: 'YonBuilder'
});

alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sha1Sync

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

sha1Sync({params})

params

data:

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

uppercase:

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

return

value:

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

示例代码

var signature = api.require('signature');
var value = signature.sha1Sync({
    data: 'YonBuilder'
});

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:

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

示例代码

var signature = api.require('signature');
var value = signature.aesSync({
    data: 'YonBuilder',
    key: 'boundary'
});

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:

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

示例代码

var signature = api.require('signature');
var value = signature.aesDecodeSync({
    data: '******',
    key: 'boundary'
});

alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

base64Sync

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

base64Sync({params})

params

data:

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

uppercase:

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

return

value:

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

示例代码

var signature = api.require('signature');
var value = signature.base64Sync({
    data: 'YonBuilder'
});

alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

base64DecodeSync

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

base64DecodeSync({params})

params

data:

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

uppercase:

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

return

value:

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

示例代码

var signature = api.require('signature');
var value = signature.base64DecodeSync({
    data: '******'
});

alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

rsaKeyPairSync

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

rsaKeyPairSync({params})

params

keyLength:

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

return

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   privateKey: {       //JSON对象;私钥信息
        encoded: ''     //字符串类型;私钥编码
        modulus: ''     //字符串类型;系数
        exponent: ''    //字符串类型;指数
   }
     publicKey: {      //JSON对象;公钥信息
        encoded: ''     //字符串类型;公钥编码
        modulus: ''     //字符串类型;系数
        exponent: ''    //字符串类型;指数
   }	
}

示例代码

var signature = api.require('signature');
var ret = signature.rsaKeyPairSync();
api.alert({
            msg: 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 文件(路径)传给原生插件即可。如这里使用语句:

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

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

return

value:

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

示例代码

var signature = api.require('signature');
var value = signature.rsaSync({
    data: 'YonBuilder',
    publicKey: ''
});
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:

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

示例代码

var signature = api.require('signature');
var value = signature.rsaDecodeSync({						     data:'Fg+aL0GB50Dz0cajqUpxKAkNZ6lf1vW4lHRpaOL8gcHLaYYHbigX1mm9YhbHGT1Zme33tGbZ8Xf5KdgcoGbF8vj3w4jvKitySVQsFDu0abmK2sNZkTu59oTsZOOMCblE0UIHOJACEl9awLVWQj8FqNyqftFimSs+2qjnH6mctIE=',				privateKey:'MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAMibptwVZ\/z34VAV+QcbY6tPb6cVK37cTg\/GCobDyq5PVwUq1++H8kZnmL\/EYutwwrPMxY1945yPXVcH7\/xRRibOuWM44jWtt6kPOL7jIQtapKDgsBlNiDRF1l\/gzn0BYsygIdic4+VIGVJpi75GZsBq2nmoJfmXnIcgE2FShryVAgMBAAECgYABA3D08Ne+ZQCFT3hwrdWo+8+q1qt0\/9xrbdBHoi1qiC8+m7A3vyZSbuYMO\/aq9\/4dJeuZPXmnpL1vjzRKFZ1cL7J+PnK9BT+ZjD7uymJRFNCjvalCAcuhKei36Wb1btwq98XfyFMzNEkrgFdzU63abWCtTLQTnswrKJIrZ\/DkCQJBAPfNB8tpnTWlDQ5p8dxSOSf+eIsRMHxhnqCxquydJqbWl+1kD5w35VQf1tOjBT4RBA06PupDAotd7g\/eKmUriekCQQDPPuEcbPUB\/9Ky68S6LR2+G9ZE\/14MIciVUbEwFqjn+AJ8GAP\/+gIGoQyepSEPJ5Ujv0dmKE3wYOlK+gRCocXNAkBxNKW+8\/zyKPkSAKyRrq6V6tc\/ERdJe39wgjpH5nNl\/NtjhDbtc0u9Zt5JyUv30uY69MURWJOs\/7hmX2SW25EhAkBngEW4honOF89IYAr91+5UtV5LUyXK9UxRllzhYU+1mdzT0MKeomNEoEXHLTzXbrNDCRJFaLeT5zJbqYVbKaO5AkAA0IgqcrQms7mm\/Tqn8eXjzZfK6W7iBlPeurpCvBKyK4AD7uvn07Xq2zsaQy5JyY3nCC4JLMtWpFvX2PQhqHKl',
password: ''
});
alert(JSON.stringify(value));

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesECBSync

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

aesECBSync({params})

params

data:

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

key:

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

encoding:

  • 类型:数字
  • 描述:输出字符串的编码;0:base64,1:hex
  • 默认:0

return

value:

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

示例代码

var signature = api.require('signature');
var value = signature.aesECBSync({
    data: 'YonBuilder',
    key: 'boundary'
});

alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesDecodeECBSync

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

aesDecodeECBSync({params})

params

data:

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

key:

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

encoding:

  • 类型:数字
  • 描述:输入字符串的编码;本接口会先对要解密的内容进行一次此字段传入类型解码,需要和aesECB或aesECBSync接口传入一致;0:base64,1:hex
  • 默认:0

return

value:

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

示例代码

var signature = api.require('signature');
var value = signature.aesDecodeECBSync({
    data: '******',
    key: 'boundary'
});

alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

desECBSync

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

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

desECBSync({params})

params

data:

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

key:

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

return

value:

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

示例代码

var signature = api.require('signature');
var value = signature.desECBSync({
    data: 'YonBuilder',
    key: 'boundary'
});

alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

desDecodeECBSync

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

desDecodeECBSync({params})

params

data:

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

key:

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

return

value:

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

示例代码

var signature = api.require('signature');
var value = signature.desDecodeECBSync({
    data: '******',
    key: 'boundary'
});

alert(value);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hmacSha1Sync

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

hmacSha1Sync({params})

params

data:

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

key:

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

return

value:

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

示例代码

var signature = api.require('signature');
var value = signature.hmacSha1Sync({
    data: 'YonBuilder',
    key: 'key'
});

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:

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

示例代码

var signature = api.require('signature');
var value = signature.aesCBCSync({
    data: 'YonBuilder',
    key: 'boundary',
    iv:'0102030405060708'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

aesDecodeCBCSync

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

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

aesDecodeSync({params})

params

data:

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

key:

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

iv:

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

return

value:

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

示例代码

var signature = api.require('signature');
var value = signature.aesDecodeCBCSync({
    data: '******',
    key: 'boundary',
    iv:'0102030405060708'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sha256Sync

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

sha256Sync({params})

params

data:

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

return

value:

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

示例代码

var signature = api.require('signature');
var value = signature.sha256Sync({
    data: 'YonBuilder'
});

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 加密/解密后的文件绝对路径

示例代码

var signature = api.require('signature');
var newPath = signature.aesFileSync({
   action: 'encode',
    path: 'fs://a.txt',
    key: 'boundary',
    iv:'YonBuilder'
});
api.alert({msg:newPath});

可用性

iOS系统,Android系统

可提供的1.0.6及更高版本

论坛示例

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

是否仍需要帮助? 请保持联络!
最后更新于 2024/12/2