7.API12 上如何用@ohos/crypto-js实现DES加解密

【问题】API12 上如何用@ohos/crypto-js实现DES加解密

【环境】系统:HarmonyOS Next Beta 版本 , SDK:API 12, @ohos/crypto-js 版本为:2.0.4-rc.1

 【资源】OpenHarmony三方库中心仓

【解决方法】

1.IDE 终端执行命令:

ohpm  install @ohos/crypto-js

2.引入依赖

最新版本支持
  import { CryptoJS } from '@ohos/crypto-js' 或者
  import CryptoJS from '@ohos/crypto-js'

 3.DES一次加密:

/*
 * DES 加密
 * @param text: 待加密文本
 * @param key: 生成对称加密密钥的key(8位) 如:mUXd2Nay
 * @param iv: 向量
 * */
 DESEncryptToString(text : string , key : string , iv : string) : string {
  const text1: CryptoJS.lib.WordArray = CryptoJS.enc.Utf8.parse(text); //明文
  const  key1: CryptoJS.lib.WordArray = CryptoJS.enc.Utf8.parse(key); //密钥
  const  iv1: CryptoJS.lib.WordArray = CryptoJS.enc.Utf8.parse(iv);//向量

   let encryptedData: string = CryptoJS.enc.Base64.stringify(CryptoJS.DES.encrypt(text1, key1, {
     iv: iv1,
     mode: CryptoJS.mode.CBC, //模式
     padding: CryptoJS.pad.Pkcs7 // 填充量
   }).ciphertext);
   return encryptedData;

}

4.DES一次解密:

/*
   * DES 解密
   * @param decryptText: 待解密文本
   * @param key: 生成对称加密密钥的key(8位) 如:mUXd2Nay
   * @param iv: 向量
   * */
   DESDecryptToString(decryptText : string , key : string , iv : string) : string {
    let key1 : CryptoJS.lib.WordArray = CryptoJS.enc.Utf8.parse(key);//key
    let iv1 : CryptoJS.lib.WordArray = CryptoJS.enc.Utf8.parse(iv); //向量
     let decryptedData : string = CryptoJS.DES.decrypt(decryptText, key1, {
       iv: iv1,
       mode: CryptoJS.mode.CBC,//模式
       padding: CryptoJS.pad.Pkcs7 //填充方式
     }).toString();
     let result: string = buffer.from(decryptedData.toString(), 'hex').toString(); //fix DES 解密中文乱码问题
     return  result

  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值