加密算法
說(shuō)明:
開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
本模塊首批接口從API version 3開(kāi)始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
導(dǎo)入模塊
import cipher from '@system.cipher'
cipher.rsa
rsa(Object): void
RSA 算法加解密。
系統(tǒng)能力: SystemCapability.Security.Cipher
參數(shù):
| 參數(shù)名 | 類(lèi)型 | 必填 | 說(shuō)明 |
|---|---|---|---|
| action | string | 是 | 加密類(lèi)型,可選項(xiàng)有: 1. encrypt 加密 2. decrypt 解密 |
| text | string | 是 | 待加密或解密的文本內(nèi)容。待加密的文本內(nèi)容應(yīng)該是一段普通文本,長(zhǎng)度不能超過(guò) keySize / 8 - 66,其中 keySize 是密鑰的長(zhǎng)度(例如密鑰長(zhǎng)度為 1024 時(shí),text 不能超過(guò) 62 個(gè)字節(jié))。待解密的文本內(nèi)容應(yīng)該是經(jīng)過(guò) base64 編碼的一段二進(jìn)制值。base64 編碼使用默認(rèn)風(fēng)格。 |
| key | string | 是 | 加密的密鑰,RSA的密鑰。加密時(shí)key為公鑰,解密時(shí)key為私鑰 |
| transformation | string | 否 | RSA算法的填充項(xiàng),默認(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ù)名 | 類(lèi)型 | 必填 | 說(shuō)明 |
|---|---|---|---|
| action | string | 是 | 加密類(lèi)型,可選項(xiàng)有: 1. encrypt 加密 2. decrypt 解密 |
| text | string | 是 | 待加密或解密的文本內(nèi)容。待加密的文本內(nèi)容應(yīng)該是一段普通文本。待解密的文本內(nèi)容應(yīng)該是經(jīng)過(guò) base64 編碼的一段二進(jìn)制值。base64 編碼使用默認(rèn)風(fēng)格 |
| key | string | 是 | 加密或解密使用到的密鑰,經(jīng)過(guò) base64 編碼后生成的字符串 |
| transformation | string | 否 | AES算法的加密模式和填充項(xiàng),默認(rèn)AES/CBC/PKCS5Padding |
| iv | string | 否 | AES加解密的初始向量,經(jīng)過(guò)base64編碼后的字符串,默認(rèn)值為key值 |
| ivOffset | string | 否 | AES加解密的初始向量偏移,默認(rèn)值0,僅支持0。 |
| ivLen | string | 否 | AES加解密的初始向量字節(jié)長(zhǎng)度,當(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);
}
});
});
}
}
審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
接口
+關(guān)注
關(guān)注
33文章
9525瀏覽量
157079 -
算法
+關(guān)注
關(guān)注
23文章
4784瀏覽量
98092 -
鴻蒙
+關(guān)注
關(guān)注
60文章
2964瀏覽量
45933
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
加密算法的應(yīng)用
加密是一種保護(hù)信息安全的重要手段,近年來(lái)隨著信息技術(shù)的發(fā)展,加密技術(shù)的應(yīng)用越來(lái)越廣泛。本文將介紹加密算法的發(fā)展、含義、分類(lèi)及應(yīng)用場(chǎng)景。
1. 加
發(fā)表于 10-24 08:03
選擇加密算法時(shí)需考慮哪些因素?
芯源半導(dǎo)體安全芯片的硬件加密引擎支持多種國(guó)際通用加密算法,在實(shí)際為物聯(lián)網(wǎng)設(shè)備選擇加密算法時(shí),需考慮哪些因素?
發(fā)表于 11-17 07:43
RC4加密算法的FPGA設(shè)計(jì)與實(shí)現(xiàn)
RC4加密算法的FPGA設(shè)計(jì)與實(shí)現(xiàn) RC4算法是一種密匙長(zhǎng)度可變的加密算法.因其實(shí)現(xiàn)方便,安全性高,廣泛應(yīng)用于無(wú)線網(wǎng)絡(luò)通信. 信息加密隨著計(jì)
發(fā)表于 08-11 11:48
汽車(chē)遙控加密算法
本人在公司主要做國(guó)內(nèi)整車(chē)廠的遙控器,主要是用keeloq,Hitag2 ,Hitag3 ,AES加密算法,想請(qǐng)教下論壇里的大牛,像奧迪,奔馳,寶馬等豪車(chē)的遙控器用什么加密算法?
發(fā)表于 02-17 21:04
DES加密算法是什么
一、加密算法1、 DES加密算法DES數(shù)據(jù)加密標(biāo)準(zhǔn),是一種使用密鑰加密的塊算法。DES中的密鑰key為8個(gè)字節(jié)64位,但每第8個(gè)為校驗(yàn)位不參
發(fā)表于 07-22 09:13
對(duì)稱加密算法是什么
對(duì)稱加密算法也叫私鑰加密算法,其特征是收信方和發(fā)信方使用相同的密鑰,即加密密鑰和解密密鑰是相同或等價(jià)的。非對(duì)稱加密算法也叫公鑰加密算法。其特
發(fā)表于 07-22 07:09
軟件加密算法都有哪些,這些算法在哪些方面得到了應(yīng)用
伴隨著人工智能、物聯(lián)網(wǎng)時(shí)代的到來(lái),數(shù)據(jù)應(yīng)用變得頻繁起來(lái),數(shù)據(jù)安全應(yīng)該如何保護(hù)?軟件加密算法都有哪些,這些算法在哪些方面得到了應(yīng)用?慢慢讀下去,你會(huì)發(fā)現(xiàn)圍繞在我們身邊的“小密碼”。對(duì)稱加密算法
發(fā)表于 12-21 07:04
淺談對(duì)稱加密算法與非對(duì)稱密鑰加密算法
什么是對(duì)稱密鑰密碼體制?對(duì)稱密鑰密碼體制的缺點(diǎn)是什么?非對(duì)稱加密算法又是什么?非對(duì)稱加密算法的缺點(diǎn)是什么?
發(fā)表于 12-23 06:05
采用多種加密算法的文件加密方法
針對(duì)傳統(tǒng)文件加密系統(tǒng)中加密算法單一、加密文件格式簡(jiǎn)單、安全性相對(duì)較低的問(wèn)題,本內(nèi)容提出了采用多種加密算法的文件
發(fā)表于 05-26 15:35
?0次下載
關(guān)于應(yīng)用到游戲中的加密算法的用途及缺陷
會(huì)對(duì)其用途以及缺陷一一說(shuō)明,當(dāng)然了,為了保證其加密算法的安全以及高效,我們也會(huì)介紹幾種自定義的加密算法,看看加密如何來(lái)維護(hù)我們的數(shù)據(jù)安全。
發(fā)表于 09-25 11:15
?0次下載
舉例幾種常見(jiàn)的加密算法
今天主要總結(jié)下常用的對(duì)稱性加密算法DES和AES,非對(duì)稱性加密算法RSA。 01 ?DES加密算法 1.DES含義 DES全稱為Data Encrypt
Go常用的加密算法詳細(xì)解讀
【導(dǎo)讀】本文介紹了常用的加密算法,并對(duì)這些加密算法結(jié)合實(shí)際 golang 代碼段進(jìn)行了詳細(xì)解讀。 前言 加密解密在實(shí)際開(kāi)發(fā)中應(yīng)用比較廣泛,常用加解密分為:“對(duì)稱式”、“非對(duì)稱式”和”數(shù)
常見(jiàn)加密算法分類(lèi)
在開(kāi)發(fā)過(guò)程中,為了保證程序能夠安全高效運(yùn)行,數(shù)據(jù)信息不被泄露,我們通常都會(huì)對(duì)要操作的數(shù)據(jù)進(jìn)行加解密,從而提高程序的安全性。常見(jiàn)加密算法分類(lèi)見(jiàn)下圖,可分為對(duì)稱
加密算法的選擇對(duì)于加密安全有多重要?
加密算法的選擇對(duì)于加密安全至關(guān)重要,因?yàn)樗苯佑绊懙綌?shù)據(jù)保護(hù)的有效性和可靠性。以下是幾個(gè)關(guān)鍵點(diǎn)來(lái)說(shuō)明加密算法選擇的重要性: 加密強(qiáng)度:
鴻蒙開(kāi)發(fā)接口安全:【@system.cipher (加密算法)】
說(shuō)明:
評(píng)論