加密算法
說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
本模塊首批接口從API version 3開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。
導入模塊
import cipher from '@system.cipher'
cipher.rsa
rsa(Object): void
RSA 算法加解密。
系統能力: SystemCapability.Security.Cipher
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
action | string | 是 | 加密類型,可選項有: 1. encrypt 加密 2. decrypt 解密 |
text | string | 是 | 待加密或解密的文本內容。待加密的文本內容應該是一段普通文本,長度不能超過 keySize / 8 - 66,其中 keySize 是密鑰的長度(例如密鑰長度為 1024 時,text 不能超過 62 個字節)。待解密的文本內容應該是經過 base64 編碼的一段二進制值。base64 編碼使用默認風格。 |
key | string | 是 | 加密的密鑰,RSA的密鑰。加密時key為公鑰,解密時key為私鑰 |
transformation | string | 否 | RSA算法的填充項,默認為RSA/None/OAEPWithSHA256AndMGF1Padding |
success | Function | 否 | 接口調用成功的回調函數。 |
fail | Function | 否 | 接口調用失敗的回調函數。 |
complete | Function | 否 | 接口調用結束的回調函數。 |
示例:
export default {
rsa() {
cipher.rsa({
//加密
action: 'encrypt',
//待加密的文本內容
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',
//待解密的內容,是base64編碼后的一段二進制值,解密后是文本內容“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 算法加解密。
系統能力: SystemCapability.Security.Cipher
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
action | string | 是 | 加密類型,可選項有: 1. encrypt 加密 2. decrypt 解密 |
text | string | 是 | 待加密或解密的文本內容。待加密的文本內容應該是一段普通文本。待解密的文本內容應該是經過 base64 編碼的一段二進制值。base64 編碼使用默認風格 |
key | string | 是 | 加密或解密使用到的密鑰,經過 base64 編碼后生成的字符串 |
transformation | string | 否 | AES算法的加密模式和填充項,默認AES/CBC/PKCS5Padding |
iv | string | 否 | AES加解密的初始向量,經過base64編碼后的字符串,默認值為key值 |
ivOffset | string | 否 | AES加解密的初始向量偏移,默認值0,僅支持0。 |
ivLen | string | 否 | AES加解密的初始向量字節長度,當前為預留字段,默認值16,僅支持16。 |
success | Function | 否 | 接口調用成功的回調函數。 |
fail | Function | 否 | 接口調用失敗的回調函數。 |
complete | Function | 否 | 接口調用結束的回調函數。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
示例:
export default {
aes() {
cipher.aes({
//加密
action: 'encrypt',
//待加密的文本內容
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',
//待解密的內容,是base64編碼后的一段二進制值
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);
}
});
});
}
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
接口
+關注
關注
33文章
8526瀏覽量
150862 -
算法
+關注
關注
23文章
4601瀏覽量
92673 -
鴻蒙
+關注
關注
57文章
2321瀏覽量
42749
發布評論請先 登錄
相關推薦
RC4加密算法的FPGA設計與實現
RC4加密算法的FPGA設計與實現 RC4算法是一種密匙長度可變的加密算法.因其實現方便,安全性高,廣泛應用于無線網絡通信. 信息加密隨著計
發表于 08-11 11:48
汽車遙控加密算法
本人在公司主要做國內整車廠的遙控器,主要是用keeloq,Hitag2 ,Hitag3 ,AES加密算法,想請教下論壇里的大牛,像奧迪,奔馳,寶馬等豪車的遙控器用什么加密算法?
發表于 02-17 21:04
程序保護的話 是不是加密算法越復雜,安全性越好呢?
我是一名技術人員,想問問程序保護的話 是不是加密算法越復雜 安全性越好呢?使用RSA或者ECC等非對稱算法是不是可絕對保證安全呢?
發表于 05-27 15:34
軟件加密算法都有哪些,這些算法在哪些方面得到了應用
伴隨著人工智能、物聯網時代的到來,數據應用變得頻繁起來,數據安全應該如何保護?軟件加密算法都有哪些,這些算法在哪些方面得到了應用?慢慢讀下去,你會發現圍繞在我們身邊的“小密碼”。對稱加密算法
發表于 12-21 07:04
關于應用到游戲中的加密算法的用途及缺陷
會對其用途以及缺陷一一說明,當然了,為了保證其加密算法的安全以及高效,我們也會介紹幾種自定義的加密算法,看看加密如何來維護我們的數據安全。
發表于 09-25 11:15
?0次下載
常見公鑰加密算法有哪些
RSA、ElGamal、背包算法、Rabin(Rabin的加密法可以說是RSA方法的特例)、Diffie-Hellman (D-H) 密鑰交換協議中的公鑰加密算法、Elliptic Curve
發表于 12-10 09:41
?4.4w次閱讀
Go常用的加密算法詳細解讀
【導讀】本文介紹了常用的加密算法,并對這些加密算法結合實際 golang 代碼段進行了詳細解讀。 前言 加密解密在實際開發中應用比較廣泛,常用加解密分為:“對稱式”、“非對稱式”和”數
評論