加密算法
說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
本模塊首批接口從API version 3開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。
導(dǎo)入模塊
import cipher from '@system.cipher'
cipher.rsa
rsa(Object): void
RSA 算法加解密。
系統(tǒng)能力: SystemCapability.Security.Cipher
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
action | string | 是 | 加密類型,可選項有: 1. encrypt 加密 2. decrypt 解密 |
text | string | 是 | 待加密或解密的文本內(nèi)容。待加密的文本內(nèi)容應(yīng)該是一段普通文本,長度不能超過 keySize / 8 - 66,其中 keySize 是密鑰的長度(例如密鑰長度為 1024 時,text 不能超過 62 個字節(jié))。待解密的文本內(nèi)容應(yīng)該是經(jīng)過 base64 編碼的一段二進(jìn)制值。base64 編碼使用默認(rèn)風(fēng)格。 |
key | string | 是 | 加密的密鑰,RSA的密鑰。加密時key為公鑰,解密時key為私鑰 |
transformation | string | 否 | RSA算法的填充項,默認(rèn)為RSA/None/OAEPWithSHA256AndMGF1Padding |
success | Function | 否 | 接口調(diào)用成功的回調(diào)函數(shù)。 |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù)。 |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)。 |
示例:
export default {
rsa() {
cipher.rsa({
//加密
action: 'encrypt',
//待加密的文本內(nèi)容
text: 'hello',
//base64編碼后的加密公鑰
key:
'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCx414QSP3RsYWYzf9mkBMiBAXon' +
'6S7Lpva1fKlcuVxjoFC1iMnzD4mC0uiL4k5MNi43J64c7dbqi3qAJjdAtuwQ6NZJn' +
'+Enz0RzmVFh/4yk6lmqRzuEFQqhQqSZzaLq6sq2N2G0Sv2Xl3sLvqAfe2HNm2oBwn' +
'jBpApTJ3TeneOo6Z5QIDAQAB',
success: function(data) {
console.log(data.data.text);
},
fail: function(data, code) {
console.log(code.code);
console.log(data.data);
}
});
cipher.rsa({
//解密:
action: 'decrypt',
//待解密的內(nèi)容,是base64編碼后的一段二進(jìn)制值,解密后是文本內(nèi)容“hello”
text:
'EPeCFPib6ayKbA0M6oSywARvFZ8dFYfjQv3nY8ikZGtS9UHq2sLPvAfpeIzggSiCxqbWeCftP1XQn' +
'Sa+jEpzFlT1qoSTunBbrYzugPTajIJDTg6R1IRsF/J+mmakn0POVPvi4jCo9wqavB324Bx0Wipncn' +
'EU5WO0oBHo5l4x6dTpU=',
//base64編碼后的解密私鑰
key:
'MIICXgIBAAKBgQCx414QSP3RsYWYzf9mkBMiBAXo6S7Lpva1fKlcuVxjoFC1iMnzn' +
'D4mC0uiL4k5MNi43J64c7dbqi3qAJjdAtuwQ6NZJ+Enz0RzmVFh/4yk6lmqRzuEFn' +
'QqhQqSZzaLq6sq2N2G0Sv2Xl3sLvqAfe2HNm2oBwjBpApTJ3TeneOo6Z5QIDAQABn' +
'AoGBAKPNtoRQcklxqo+2wQP0j2m3Qqnib1DggjVEgb/8f/LNYQSI3U2QdROemryUn' +
'u3y6N3xacZ359PktTrRKfH5+8ohmHGhIuPAnefp6bLvAFUcl4t1xm74Cow62Kyw3n' +
'aSbmuTG98dxPA1sXD0jiprdtsq2wQ9CoKNyY7/d/pKoqxNuBAkEA4GytZ60NCTj9n' +
'w24jACFeko5YqCFY/TTLoc4SQvWtFMnimRPclLZhtUIK0P8dib71UFedx+AxklgLn' +
'A5gjcfo+2QJBAMrqiwyCh3OQ5DhyRPDwt87x1/jg5fy4hhete2ufSf2FoQCVqO+wn' +
'PKoljdXmJeS6rGgzGibstuHLrP3tcIho4+0CQD3ZFWzF/xq0jxKlrpWhnJuNCRfEn' +
'oO6e9yNvVA8J/5oEDSOcmqSNIp4+RhbUx8InUxnCG6Ryv5aSFu71pYcKrPkCQQCLn' +
'RUGcm3ZGTnslduB0knNF+V2ndwzDUQ7P74UXT+PjurTPhujFYiuxCEd6ORVnEOzGn' +
'M9TORIgdH8MjIbWsGnndAkEAw9yURDaorE8IYPLF2IEn09g1uzvWPs3phDb6smVxn' +
'8GfqIdUNf+aCG5TZK/kXBF1sqcsi7jXMAf4jBlejVbSVZg==',
success: function(data) {
console.log(data.data.text);
},
fail: function(data, code) {
console.log(code.code);
console.log(data.data);
},
});
}
}
cipher.aes
aes(Object): void
AES 算法加解密。
系統(tǒng)能力: SystemCapability.Security.Cipher
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
action | string | 是 | 加密類型,可選項有: 1. encrypt 加密 2. decrypt 解密 |
text | string | 是 | 待加密或解密的文本內(nèi)容。待加密的文本內(nèi)容應(yīng)該是一段普通文本。待解密的文本內(nèi)容應(yīng)該是經(jīng)過 base64 編碼的一段二進(jìn)制值。base64 編碼使用默認(rèn)風(fēng)格 |
key | string | 是 | 加密或解密使用到的密鑰,經(jīng)過 base64 編碼后生成的字符串 |
transformation | string | 否 | AES算法的加密模式和填充項,默認(rèn)AES/CBC/PKCS5Padding |
iv | string | 否 | AES加解密的初始向量,經(jīng)過base64編碼后的字符串,默認(rèn)值為key值 |
ivOffset | string | 否 | AES加解密的初始向量偏移,默認(rèn)值0,僅支持0。 |
ivLen | string | 否 | AES加解密的初始向量字節(jié)長度,當(dāng)前為預(yù)留字段,默認(rèn)值16,僅支持16。 |
success | Function | 否 | 接口調(diào)用成功的回調(diào)函數(shù)。 |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù)。 |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
示例:
export default {
aes() {
cipher.aes({
//加密
action: 'encrypt',
//待加密的文本內(nèi)容
text: 'hello',
//base64編碼后的密鑰
key: 'NDM5Qjk2UjAzMEE0NzVCRjlFMkQwQkVGOFc1NkM1QkQ=',
transformation: 'AES/CBC/PKCS5Padding',
ivOffset: '0',
ivLen: '16',
success: (data) = > {
console.log(data.data.text);
},
fail: (data, code) = > {
console.log(code.code);
console.log(data.data);
}
});
cipher.aes({
//解密:
action: 'decrypt',
//待解密的內(nèi)容,是base64編碼后的一段二進(jìn)制值
text: '1o0kf2HXwLxHkSh5W5NhzA==',
//base64編碼后的密鑰
key: 'NDM5Qjk2UjAzMEE0NzVCRjlFMkQwQkVGOFc1NkM1QkQ=',
transformation: 'AES/CBC/PKCS5Padding',
ivOffset: '0',
ivLen: '16',
success: (data) = > {
console.log(data.data.text);
},
fail: (data, code) = > {
console.log(code.code);
console.log(data.data);
}
});
});
}
}
審核編輯 黃宇
-
接口
+關(guān)注
關(guān)注
33文章
8611瀏覽量
151234 -
算法
+關(guān)注
關(guān)注
23文章
4613瀏覽量
92945 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2358瀏覽量
42871
發(fā)布評論請先 登錄
相關(guān)推薦
評論