- 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 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 对象
- 内部字段:
{
status: true //布尔类型;是否签名成功,true|false
value: '' //字符串类型;MD5 签名后的字符串
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: //数字类型;错误码,取值范围如下:
//-1:未知错误
//1:数据源(data)为空
}
示例代码
var signature = api.require('signature');
signature.md5({
data: 'APICloud'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(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: 'APICloud'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(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: 'APICloud',
key: 'boundary'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(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) {
alert(JSON.stringify(ret));
} else {
alert(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: 'APICloud'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(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) {
alert(JSON.stringify(ret));
} else {
alert(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) {
alert(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: 'APICloud',
publicKey: ''
}, function(ret) {
alert(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: 'APICloud',
privateKey: '',
password: ''
},function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
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 对象
- 内部字段:
{
status: true //布尔类型;是否加密成功,true|false
value: '' //字符串类型;AES 加密后的字符串
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: //数字类型;错误码,取值范围如下:
//-1:未知错误
//1:数据源(data)为空
}
示例代码
var signature = api.require('signature');
signature.aesECB({
data: 'APICloud',
key: 'boundary'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
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 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
} else {
alert(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: 'APICloud',
key: 'boundary'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(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) {
alert(JSON.stringify(ret));
} else {
alert(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: 'APICloud',
key: 'key'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(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: 'APICloud',
key: 'boundary',
iv:'0102030405060708'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(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) {
alert(JSON.stringify(ret));
} else {
alert(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: 'APICloud'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(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:'apicloud'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(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: 'APICloud'
});
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: 'APICloud'
});
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: 'APICloud',
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: 'APICloud'
});
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();
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 文件(路径)传给模块即可。如这里使用语句:
//生成长度为 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: 'APICloud',
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: 'APICloud',
privateKey: '',
password: ''
});
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:
- 类型:字符串
- 描述:加密后的字符串
示例代码
var signature = api.require('signature');
var value = signature.aesECBSync({
data: 'APICloud',
key: 'boundary'
});
alert(value);
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
aesDecodeECBSync
将字符串进行 AES 解密(本解密过程为同步),加密模式和填充模式分别为:WCB/PKCS7Padding;数据块:256位;输出:base64;字符集:utf8
注意:本接口会先对要解密的内容进行一次 base64 解码。
aesDecodeECBSync({params})
params
data:
- 类型:字符串
- 描述:要解密的字符串
key:
- 类型:字符串
- 描述:aes 解密算法使用的 key
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: 'APICloud',
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: 'APICloud',
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: 'APICloud',
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: 'APICloud'
});
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:'apicloud'
});
api.alert({msg:newPath});
可用性
iOS系统,Android系统
可提供的1.0.6及更高版本
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。