鴻蒙開發接口安全:【@system.cipher (加密算法)】

加密算法

icon-note.gif?說明:

本模塊首批接口從API version 3開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。

導入模塊

import cipher from '@system.cipher'

cipher.rsa

rsa(Object): void

RSA 算法加解密。

系統能力: ?SystemCapability.Security.Cipher

參數:

參數名類型必填說明
actionstring加密類型,可選項有: 1.?encrypt?加密 2.?decrypt?解密
textstring待加密或解密的文本內容。待加密的文本內容應該是一段普通文本,長度不能超過?keySize?/?8?-?66,其中?keySize?是密鑰的長度(例如密鑰長度為?1024?時,text?不能超過?62?個字節)。待解密的文本內容應該是經過?base64?編碼的一段二進制值。base64?編碼使用默認風格。
keystring加密的密鑰,RSA的密鑰。加密時key為公鑰,解密時key為私鑰
transformationstringRSA算法的填充項,默認為RSA/None/OAEPWithSHA256AndMGF1Padding
successFunction接口調用成功的回調函數。
failFunction接口調用失敗的回調函數。
completeFunction接口調用結束的回調函數。

示例:

export default {    rsa() {        cipher.rsa({            //加密            action: 'encrypt',            //待加密的文本內容            text: 'hello',            //base64編碼后的加密公鑰            key: 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCx414QSP3RsYWYzf9mkBMiBAXo\n' + '6S7Lpva1fKlcuVxjoFC1iMnzD4mC0uiL4k5MNi43J64c7dbqi3qAJjdAtuwQ6NZJ\n' + '+Enz0RzmVFh/4yk6lmqRzuEFQqhQqSZzaLq6sq2N2G0Sv2Xl3sLvqAfe2HNm2oBw\n' +'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:            'EPeCFPib6ayKbA0M6oSywARvFZ8dFYfjQv3nY8ikZGtS9UHq2sLPvAfpeIzggSiCxqbWeCftP1XQ\n' +'Sa+jEpzFlT1qoSTunBbrYzugPTajIJDTg6R1IRsF/J+mmakn0POVPvi4jCo9wqavB324Bx0Wipnc\n' +'EU5WO0oBHo5l4x6dTpU=',           //base64編碼后的解密私鑰            key:            'MIICXgIBAAKBgQCx414QSP3RsYWYzf9mkBMiBAXo6S7Lpva1fKlcuVxjoFC1iMnz\n' +'D4mC0uiL4k5MNi43J64c7dbqi3qAJjdAtuwQ6NZJ+Enz0RzmVFh/4yk6lmqRzuEF\n' +'QqhQqSZzaLq6sq2N2G0Sv2Xl3sLvqAfe2HNm2oBwjBpApTJ3TeneOo6Z5QIDAQAB\n' +'AoGBAKPNtoRQcklxqo+2wQP0j2m3Qqnib1DggjVEgb/8f/LNYQSI3U2QdROemryU\n' +'u3y6N3xacZ359PktTrRKfH5+8ohmHGhIuPAnefp6bLvAFUcl4t1xm74Cow62Kyw3\n' +'aSbmuTG98dxPA1sXD0jiprdtsq2wQ9CoKNyY7/d/pKoqxNuBAkEA4GytZ60NCTj9\n' +'w24jACFeko5YqCFY/TTLoc4SQvWtFMnimRPclLZhtUIK0P8dib71UFedx+AxklgL\n' +'A5gjcfo+2QJBAMrqiwyCh3OQ5DhyRPDwt87x1/jg5fy4hhete2ufSf2FoQCVqO+w\n' +'PKoljdXmJeS6rGgzGibstuHLrP3tcIho4+0CQD3ZFWzF/xq0jxKlrpWhnJuNCRfE\n' +'oO6e9yNvVA8J/5oEDSOcmqSNIp4+RhbUx8InUxnCG6Ryv5aSFu71pYcKrPkCQQCL\n' +'RUGcm3ZGTnslduB0knNF+V2ndwzDUQ7P74UXT+PjurTPhujFYiuxCEd6ORVnEOzG\n' +'M9TORIgdH8MjIbWsGnndAkEAw9yURDaorE8IYPLF2IEn09g1uzvWPs3phDb6smVx\n' + '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

參數:

參數名類型必填說明
actionstring加密類型,可選項有: 1.?encrypt?加密 2.?decrypt?解密
textstring待加密或解密的文本內容。待加密的文本內容應該是一段普通文本。待解密的文本內容應該是經過?base64?編碼的一段二進制值。base64?編碼使用默認風格
keystring加密或解密使用到的密鑰,經過?base64?編碼后生成的字符串
transformationstringAES算法的加密模式和填充項,默認AES/CBC/PKCS5Padding
ivstringAES加解密的初始向量,經過base64編碼后的字符串,默認值為key值
ivOffsetstringAES加解密的初始向量偏移,默認值0,僅支持0。
ivLenstringAES加解密的初始向量字節長度,當前為預留字段,默認值16,僅支持16。
successFunction接口調用成功的回調函數。
failFunction接口調用失敗的回調函數。
completeFunction接口調用結束的回調函數。

示例:

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);            }        });        });    }
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/22776.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/22776.shtml
英文地址,請注明出處:http://en.pswp.cn/web/22776.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Pointnet++改進卷積系列:全網首發SMPConv連續卷積 |即插即用,提升特征提取模塊性能

簡介:1.該教程提供大量的首發改進的方式,降低上手難度,多種結構改進,助力尋找創新點!2.本篇文章對Pointnet++特征提取模塊進行改進,加入SMPConv,提升性能。3.專欄持續更新,緊隨最新的研究內容。 目錄 1.理論介紹 2.修改步驟 2.1 步驟一 2.2 步驟二 2.3 步驟

K8S==ingress配置自簽名證書

安裝openssl Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions 生成證書 openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout example.local.key -out example.local.crt -subj "/CNexample.local/Oexample.local"創建K8S secr…

【簡單講解TalkingData的數據統計】

🎥博主:程序員不想YY啊 💫CSDN優質創作者,CSDN實力新星,CSDN博客專家 🤗點贊🎈收藏?再看💫養成習慣 ?希望本文對您有所裨益,如有不足之處,歡迎在評論區提出…

Vue3中的常見組件通信之mitt

Vue3中的常見組件通信之mitt 概述 ? 在vue3中常見的組件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的組件關系用不同的傳遞方式。常見的撘配形式如下表所示。 組件關系傳遞方式父傳子1. props2. v-model3. $refs…

用例篇03

正交表 因素:存在的條件 水平:因素的取值 最簡單的正交表:L4(2) 應用 allpairs 來實現正交表。 步驟: 1.根據需求找出因素和水平 2.將因素和水平寫入到excel表格中(表格不需要保存)(推薦用…

SpaceX 首席火箭著陸工程師 MIT論文詳解:非凸軟著陸最優控制問題的控制邊界和指向約束的無損凸化

上一篇blog翻譯了 Lars Blackmore(Lars Blackmore is principal rocket landing engineer at SpaceX)的文章,SpaceX 使用 CVXGEN 生成定制飛行代碼,實現超高速機載凸優化。利用地形相對導航實現了數十米量級的導航精度,著陸器在著陸過程中成像行星表面并將特征與機載…

PHP序列化、反序列化

目錄 一、PHP序列化:serialize() 1.對象序列化 2.pop鏈序列化 3.數組序列化 二、反序列化:unserialize() 三、魔術方法 ?四、NSSCTF相關簡單題目 1.[SWPUCTF 2021 新生賽]ez_unserialize 2.[SWPUCTF 2021 新生賽]no_wakeup 學習參考&#xff1…

054、Python 函數的概念以及定義

編程大師Martin Fowler曾說過:“代碼有很多種壞味道,重復是最壞的一種。” 那么遇到重復的代碼,如何做?答案就是:函數。 函數就是把重復的代碼封裝在一起,然后通過調用該函數從而實現在不同地方運行同樣的…

解決MAC M1 Docker Desktop啟動一直在starting

問題描述: 今天使用docker buildx 構建Multi-platform,提示如下錯誤: ERROR: Multi-platform build is not supported for the docker driver. Switch to a different driver, or turn on the containerd image store, and try again. 于是按…

蘋果ios用戶下載ipa文件內測簽名的后的app應用下載安裝到手機圖標消失了是什么原因呢?

下載好的應用竟然找不到了?究竟有哪些原因呢?本篇文章將總結一些可能性! 若你在蘋果設備上下載了一個應用程序,但它的圖標不見了,可能有以下幾種原因: 1. 刪除應用的時候出現彈窗如果你錯誤的點擊到了從…

EasyRecovery2024破解版本下載,電腦數據恢復新突破!

在當今數字化時代,數據安全和軟件版權已成為全球關注的熱點。EasyRecovery,作為一款廣受歡迎的數據恢復軟件,因其強大的數據恢復功能而深受用戶喜愛。然而,隨著“EasyRecovery2024 crack”關鍵詞的流行,我們不得不面對…

電子電氣架構 —— 刷寫模式:并行刷寫

電子電氣架構 —— 刷寫模式:并行刷寫 我是穿拖鞋的漢子,魔都中堅持長期主義的工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 人們會在生活中不斷攻擊你。他們的主要武器是向你灌輸對自己的懷疑:你的價值、你的能力、你的潛力。他們往往會將此…

【深度學習入門篇一】阿里云服務器(不需要配環境直接上手跟學代碼)

前言 博主剛剛開始學深度學習,配環境配的心力交瘁,一塌糊涂,不想配環境的剛入門的同伴們可以直接選擇阿里云服務器 阿里云天池實驗室,在入門階段跑個小項目完全沒有問題,不要自己傻傻的在那配環境配了半天還不匹配&a…

二叉樹的層序遍歷Ⅱ-力扣

很簡單的一道題,將前一道題的結果數組進行一次反轉即可。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(i…

【ARM Cache 系列文章 2.1 -- Cache PoP 及 PoDP 介紹】

請閱讀【ARM Cache 及 MMU/MPU 系列文章專欄導讀】 及【嵌入式開發學習必備專欄】 文章目錄 PoP 及 PoDPCache PoDPCache PoP應用和影響PoP 及 PoDP Cache PoDP 點對深度持久性(Point of Deep Persistence, PoDP)是內存系統中的一個點,在該點達到的任何寫操作即使在系統供電…

石油行業的數字化轉型與智能化發展:新技術綜合運用助力業務提升

引言 石油行業面臨的挑戰與機遇 石油行業是全球能源供應的重要支柱,然而,隨著資源枯竭、環境壓力增加以及市場競爭加劇,石油企業面臨著前所未有的挑戰。傳統的勘探和生產方式已經難以滿足當前高效、安全、環保的要求。同時,能源轉…

用幻燈片來解釋C/C++指針及運算

在互聯網上發現了一個很好的C入門學習網站,用各種圖表和幻燈片來學習C知識,非常直觀,一目了然,比看文字更容易理解。做個搬運工用中文分享一下C/C最難懂的的內存指針的講解,由淺入深的將指針解釋的很清楚易懂&#xff…

web刷題記錄(3)

[NISACTF 2022]checkin 簡單的get傳參,好久沒做過這么簡單的題了 王德發?????!,看了源代碼以后,本來以為是js腳本的問題,但是禁用js腳本沒用,看了大佬的wp以后…

鴻蒙輕內核M核源碼分析系列六 任務及任務調度(2)任務模塊

任務是操作系統一個重要的概念,是競爭系統資源的最小運行單元。任務可以使用或等待CPU、使用內存空間等系統資源,并獨立于其它任務運行。鴻蒙輕內核的任務模塊可以給用戶提供多個任務,實現任務間的切換,幫助用戶管理業務程序流程。…

智慧校園究竟有何魅力?

隨著科技的快速發展,智慧校園已成為教育領域的熱門話題。智慧校園利用先進的技術手段,將信息化與教育深度融合,為學生、教師和家長提供更便捷、高效的教育服務。本文將帶您深入了解智慧校園的魅力,讓您對未來教育的發展充滿期待。…