HarmonyOS 是否有提供DES加解密的方法?

如题:HarmonyOS 是否有提供DES加解密的方法?

阅读 533
1 个回答

des的加解密目前HarmonyOS原生不支持,需要通过crypto-js三方库实现。需注意des加密过长明文会报错:

//...DES encrypt:UK6zCxxx0DV+FgoeyXw==
//...DES decrypt:2011536858
import CryptoJS from '@ohos/crypto-js'

@Entry
@Component
struct DesCrypto {
  @State message: string = '点击开始';

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            DESCrypto()
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

function DESCrypto() {
  let str: string = "xxx";
  // let key: string = "49cefbef4b407ff1";
  let key: string = "xxxx";
  let UTF8key: string = CryptoJS.enc.Hex.parse(key);
  let encrypted: string = CryptoJS.DES.encrypt(str, UTF8key, {
    mode: CryptoJS.mode.ECB,
    // mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7,
    // iv: CryptoJS.enc.Hex.parse('202012$6')
  }).ciphertext.toString(CryptoJS.enc.Base64);
  console.log("...DES encrypt:" + encrypted);

  let decrypted: string = CryptoJS.DES.decrypt(encrypted, UTF8key, {
    mode: CryptoJS.mode.ECB,
    // mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7,
    // iv: CryptoJS.enc.Hex.parse('202012$6')
  }).toString(CryptoJS.enc.Utf8);
  console.log("...DES decrypt:" + decrypted);
}

三方库指南链接:https://developer.huawei.com/consumer/cn/forum/topic/0202154002624192642

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进