HarmonyOS 鸿蒙Next上AES加解密无问题,但加密结果无法在三方网站解密

发布于 1周前 作者 zlyuanteng 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 使用AES加解密问题确认及后续解决计划
HarmonyOS 鸿蒙Next上AES加解密无问题,但加密结果无法在三方网站解密。这是否为HarmonyOS 鸿蒙Next当前问题?若是,后续有无解决计划?

使用AES加解密时,加解密在鸿蒙上无问题,但是加密后的结果无法在三方加解密网站解密。想确认一下这是否是鸿蒙目前存在的问题吗?如果是的话,该问题后续是否会进行解决? 

2 回复

测试无问题; text=‘This is a test’ , key=‘1111111111111111’ ;

加密结果:GtNUl0VkgLz4M8yMLJb9yw==

//加密

async aesEncrypt(text: string, key: string): Promise<string> {

    let globalResult = ""

    try {

      let cipherAlgName = 'AES128|ECB|PKCS7';

      let globalCipher = cryptoFramework.createCipher(cipherAlgName);

      let symAlgName = 'AES128';

      let symKeyGenerator = cryptoFramework.createSymKeyGenerator(symAlgName);

      //let dataUint8Array = base.decodeSync(key)

      let dataUint8Array = stringToUint8Array(key)

      let keyBlob: cryptoFramework.DataBlob = { data: dataUint8Array }

      let promiseSymKey = await symKeyGenerator.convertKey(keyBlob)

      await globalCipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, promiseSymKey, null);

      let plainText: cryptoFramework.DataBlob = { data: stringToUint8Array(text) }

      let result = await globalCipher.doFinal(plainText)

      this.decryptData = buffer.from(result.data).toString('base64')

      // globalResult = base.encodeToStringSync(result.data);

      console.log("test---" + this.decryptData)

    } catch (err) {

      console.log(err.message)

    }

    return globalResult;

  }

// 字符串转成字节流

function stringToUint8Array(str: string) {

  return new Uint8Array(buffer.from(str, 'utf-8').buffer);

}

当前有可能是网页的问题;

1、使用网页测试时,秘钥直接使用 16个1 ,网页与ArkTS两边是一致的;

2、如果使用同样的方法,获取 16个1 的base64编码,然后作为秘钥去进行加密,结果就不一样了;

你这边如果在网页通过base64测试的话,可能是这个问题,使用明文秘钥测试网页与ArkTS 是可以的

更多关于HarmonyOS 鸿蒙Next上AES加解密无问题,但加密结果无法在三方网站解密的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next 使用AES加解密时,若加密结果无法在第三方网站解密,通常不是HarmonyOS 鸿蒙Next系统本身的问题。AES加密的结果依赖于多个因素,包括密钥、初始化向量(IV)、填充模式、加密模式等。如果这些因素在加密和解密过程中不一致,就会导致解密失败。

第三方网站可能使用不同的默认设置或参数进行AES解密,如果与你在HarmonyOS 鸿蒙Next上使用的设置不匹配,就会出现解密失败的情况。

为了解决这个问题,你可以:

  1. 确认在HarmonyOS 鸿蒙Next上使用的AES加密参数(密钥、IV、加密模式、填充模式等)与第三方网站解密时使用的参数完全一致。
  2. 如果可能,尝试在第三方网站上手动设置AES解密参数,以匹配你在HarmonyOS 鸿蒙Next上的设置。

如果经过上述步骤后问题依旧存在,这可能是由于第三方网站的解密功能本身存在问题或限制。此时,你可以考虑使用其他可靠的AES解密工具或库进行验证。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!