0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-06 09:11 ? 次閱讀

加密算法

icon-note.gif說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
本模塊首批接口從API version 3開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。

導入模塊

import cipher from '@system.cipher'

cipher.rsa

rsa(Object): void

RSA 算法加解密。

系統(tǒng)能力: SystemCapability.Security.Cipher

參數

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

示例:

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 算法加解密。

系統(tǒng)能力: SystemCapability.Security.Cipher

參數:

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

示例:

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

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8447

    瀏覽量

    150720
  • 算法
    +關注

    關注

    23

    文章

    4587

    瀏覽量

    92501
  • 鴻蒙
    +關注

    關注

    57

    文章

    2302

    瀏覽量

    42689
收藏 人收藏

    評論

    相關推薦

    RC4加密算法的FPGA設計與實現

    RC4加密算法的FPGA設計與實現 RC4算法是一種密匙長度可變的加密算法.因其實現方便,安全性高,廣泛應用于無線網絡通信. 信息加密隨著計
    發(fā)表于 08-11 11:48

    汽車遙控加密算法

    本人在公司主要做國內整車廠的遙控器,主要是用keeloq,Hitag2 ,Hitag3 ,AES加密算法,想請教下論壇里的大牛,像奧迪,奔馳,寶馬等豪車的遙控器用什么加密算法?
    發(fā)表于 02-17 21:04

    程序保護的話 是不是加密算法越復雜,安全性越好呢?

    我是一名技術人員,想問問程序保護的話 是不是加密算法越復雜 安全性越好呢?使用RSA或者ECC等非對稱算法是不是可絕對保證安全呢?
    發(fā)表于 05-27 15:34

    如何去實現DES加密算法

    DES算法的簡單原理是什么?如何去實現DES加密算法
    發(fā)表于 04-26 07:14

    DES加密算法是什么

    一、加密算法1、 DES加密算法DES數據加密標準,是一種使用密鑰加密的塊算法。DES中的密鑰key為8個字節(jié)64位,但每第8個為校驗位不參
    發(fā)表于 07-22 09:13

    對稱加密算法是什么

    對稱加密算法也叫私鑰加密算法,其特征是收信方和發(fā)信方使用相同的密鑰,即加密密鑰和解密密鑰是相同或等價的。非對稱加密算法也叫公鑰加密算法。其特
    發(fā)表于 07-22 07:09

    軟件加密算法都有哪些,這些算法在哪些方面得到了應用

    伴隨著人工智能、物聯網時代的到來,數據應用變得頻繁起來,數據安全應該如何保護?軟件加密算法都有哪些,這些算法在哪些方面得到了應用?慢慢讀下去,你會發(fā)現圍繞在我們身邊的“小密碼”。對稱加密算法
    發(fā)表于 12-21 07:04

    淺談對稱加密算法與非對稱密鑰加密算法

    什么是對稱密鑰密碼體制?對稱密鑰密碼體制的缺點是什么?非對稱加密算法又是什么?非對稱加密算法的缺點是什么?
    發(fā)表于 12-23 06:05

    采用多種加密算法的文件加密方法

    針對傳統(tǒng)文件加密系統(tǒng)中加密算法單一、加密文件格式簡單、安全性相對較低的問題,本內容提出了采用多種加密算法的文件
    發(fā)表于 05-26 15:35 ?0次下載
    采用多種<b class='flag-5'>加密算法</b>的文件<b class='flag-5'>加密</b>方法

    labview md5加密算法.llb

    md5加密算法 md5加密算法 md5加密算法 md5加密算法
    發(fā)表于 05-25 14:25 ?111次下載

    關于應用到游戲中的加密算法的用途及缺陷

    會對其用途以及缺陷一一說明,當然了,為了保證其加密算法安全以及高效,我們也會介紹幾種自定義的加密算法,看看加密如何來維護我們的數據安全
    發(fā)表于 09-25 11:15 ?0次下載

    常見公鑰加密算法有哪些

    RSA、ElGamal、背包算法、Rabin(Rabin的加密法可以說是RSA方法的特例)、Diffie-Hellman (D-H) 密鑰交換協議中的公鑰加密算法、Elliptic Curve
    發(fā)表于 12-10 09:41 ?4.4w次閱讀

    舉例幾種常見的加密算法

    今天主要總結下常用的對稱性加密算法DES和AES,非對稱性加密算法RSA。 01 ?DES加密算法 1.DES含義 DES全稱為Data Encrypt
    的頭像 發(fā)表于 04-28 13:52 ?2w次閱讀
    舉例幾種常見的<b class='flag-5'>加密算法</b>

    Go常用的加密算法詳細解讀

    【導讀】本文介紹了常用的加密算法,并對這些加密算法結合實際 golang 代碼段進行了詳細解讀。 前言 加密解密在實際開發(fā)中應用比較廣泛,常用加解密分為:“對稱式”、“非對稱式”和”數
    的頭像 發(fā)表于 09-01 14:47 ?2940次閱讀

    常見加密算法分類

    開發(fā)過程中,為了保證程序能夠安全高效運行,數據信息不被泄露,我們通常都會對要操作的數據進行加解密,從而提高程序的安全性。常見加密算法分類見下圖,可分為對稱
    的頭像 發(fā)表于 11-21 10:08 ?1395次閱讀
    常見<b class='flag-5'>加密算法</b>分類