AES加解密的请参考https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/crypto-aes-sym-encrypt-decrypt-ecb-V5请参考以下示例:import cryptoFramework from '@ohos.security.cryptoFramework'; import buffer from '@ohos.buffer'; import { BusinessError } from '@kit.BasicServicesKit'; import { util } from '@kit.ArkTS'; function encryptMessage(symKey: cryptoFramework.SymKey, plainText: cryptoFramework.DataBlob) { let cipher = cryptoFramework.createCipher('AES256|ECB|PKCS5'); cipher.initSync(cryptoFramework.CryptoMode.ENCRYPT_MODE, symKey, null); let cipherData = cipher.doFinalSync(plainText); return cipherData; } // 解密消息 function decryptMessage(symKey: cryptoFramework.SymKey, cipherText: cryptoFramework.DataBlob) { let decoder = cryptoFramework.createCipher('AES256|ECB|PKCS5'); decoder.initSync(cryptoFramework.CryptoMode.DECRYPT_MODE, symKey, null); let decryptData = decoder.doFinalSync(cipherText); return decryptData; } export class AES { static async main(pubKeyStr:string,message:string) { try { // let keyData = new Uint8Array([83, 217, 231, 76, 28, 113, 23, 219, 250, 71, 209, 210, 205, 97, 32, 159]); /*let keyData = new Uint8Array(buffer.from(pubKeyStr, 'utf-8').buffer); let symKeyBlob: cryptoFramework.DataBlob = { data: keyData };*/ let symKeyGenerator = cryptoFramework.createSymKeyGenerator('AES256'); let key = await symKeyGenerator.convertKey({ data:new Uint8Array(buffer.from(pubKeyStr).buffer) }); // let key = await symKeyGenerator.convertKey(symKeyBlob); let plainText: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from(message, 'utf-8').buffer) }; let encryptText = encryptMessage(key, plainText); let decryptText = decryptMessage(key, encryptText); if (plainText.data.toString() === decryptText.data.toString()) { console.info('decrypt ok'); console.info('decrypt plainText: ' + buffer.from(decryptText.data).toString('utf-8')); } else { console.error('decrypt failed'); } } catch (error) { console.error(`AES ECB “${error}“, error code: ${error.code}`); } } } @Entry @Component struct AESTest1 { @State message: string = 'Hello World'; async aboutToAppear(){ let pubKeyStr="U0Xg55zo9-TglUjxvBG_Dac_2NAsAyQc" AES.main(pubKeyStr,"This is a message") } build() { RelativeContainer() { Text(this.message) .id('AESTest1HelloWorld') .fontSize(50) .fontWeight(FontWeight.Bold) .alignRules({ center: { anchor: '__container__', align: VerticalAlign.Center }, middle: { anchor: '__container__', align: HorizontalAlign.Center } }) .onClick(async ()=>{ let pubKeyStr="U0Xg55zo9-TglUjxvBG_Dac_2NAsAyQc" let encryptTextStr = "Py0Hz54GLZT6EyRb1hmOXguLnv6r9vYHpOialJ2ErtARIynKWOii+VR8t3w/PrlXcGAg3Q22mBVw626/q4TCBfJixxxxxxxxxxxxxxxxxxxxxxxMU/hNEEv+A0F3bKSrcIBVu6oHzDwX88yi85L7VnBiraj9TdOs3zoVVXAirduEAcqa7Z8dDKJI8hVFUEoSjzfxcAgSHz7hURAWmZNBkRsIO/3gfHPZFQNuUwJVwwI51iSTP8AP2lsjSyqqA9XJHtfR4SskJlE9Cvj2OdW0qDIWy37DuK+gEIUFceyiJPYidwKaj7edsdav3aDpcF1sdB/6oq4A5blF+wILlWziKrHcy9w0emogPH26VxxxxxxxxxxxxxxxxxxxOCysIXTDWr/S19qnFsY0Sct+3M7G5yXazbxWhR0WHDiLi/QUXL0KrCRbQHdAvD/u0/BtNbB5mYNLMXRHc5RxgM/wvLRHgQCFCa16+cl8/fNwT5BsYZHF47A1VeqmYKU/VfItBVFtLrHuCarfONhHiaUxkKN2US+8E2JbQ0c0bSPgMn2T3n6jbC/AklDc7myN62GREAnuqJ5ZgKWrW5qn3fJ4R7q5P66sAY0vr8cRApUn6SdgTYbZKHMn4v983vCffHwO0Fo4JVw01fvT7oTS/2DaekHRpMTsc6FZJ12IuA9MzV8kyIi7azA7bTFobJv2EUd1hGDvvxxxxxxxxxxxxxxxxxxxxxxxxxxxfhi517k/K7z2FlX4lGD8CZBGU8+T+HpXXTd4JjoyhQRdir+gHU332N87yIzm/ClYqcrxli4McuCoH5jiXAQrACIK0QBBQS8YAR8Ft+82MrcLgo9d/gb4Cbh1bcGeHTgvB1guLEDr64ko4zmDf9YwyoFDV19X3xZBjW9M9O6K1k0qgTbJ1cWdH04ozOfsRcUYCdqJDWhu45H8AXOUyAraMBI7daNl2fu+X5p17pX/3WisLvjxLmqVsw+aSsTW7fPLnwXqIHOc3auGLlevNk75bEWB8BDmLwA/A9XsW+2HzFmsO5hQ7Pxxxxxxxxxxxxxxxxxxxxxxxxxxx6gmjahztJMRRT9W/QVhtP7b3FOKLJh6qCpCeKo8CMfleKPYBg1coA/XRzqScg5si91IYacV9zpPhgkZH18E8cRTl5kfsrg8FUKbfPGkiMfpe/QG3mFSpXWgXpcL4fvZK7DJwDVTDHKKkIpox2pUUa/oEhePs0REhIULaf/7OHVIEqM6dG7kWQ25gV9jBfOHQayVBqv+KaKxIZN6gPcFxJqNqjI6RVPnNGpUi5Ixm+EoyVYIOEikutYhen7ep7zkuN4FdFq/gCbr+vUEoUE49AjyjTouUegHUFM8W4pXUkwvP3W8+X5B0SMNxe2O7W2smcYVvFV19SZa0Tf7aMgKdZMBp/Dc0yW3FUZZyAz3PbFhplCMpwOpkN9MRrZl59QxLLhSRy+svUMGxp8qb3yEMUSNs+mP2nnEQXi5Q52Vj/6k7VjC/f8pZ+9zFCw0kMpS77sFCnxNbxFoT+2vkAbGcHhqpiO9PkhoIalNWK8b8ZADDmdxYV5gfoH1JuncE8CVPW4LCu2nW3HbVhR7Bw/8emT1JrgcLAwbvUXJHxMIytO1+pdwCthxKbq+vDYDbkNXwPClDKAuoG+IWoYpWJYm1FSegDLUEpKmA3OTZNcQ+v24W6NysHFGxKUnTLcdJQBdq0zziXs8oUk6boHAx/ten+a/Dz9gDis9RVMUF7XYAW8twgWRtEkIJhc36K7L/uxw6Zx2ZSy4sN5wsizhMnw3QQY+G+BGpOosJzl9ML7MSaaKCOPwS/L5/nClpZRoLz7ATWl5pT7DMXYEtWr4pRo81qKWlK1FAQPiczv0Xn+qycEBh9LXZ2JqehJXgk="; let encryptText = new util.Base64Helper().decodeSync(encryptTextStr) try { let symKeyGenerator = cryptoFramework.createSymKeyGenerator('AES256'); let key = await symKeyGenerator.convertKey({ data:new Uint8Array(buffer.from(pubKeyStr).buffer) }); // let key = await symKeyGenerator.convertKey(symKeyBlob); let plainText: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from("message", 'utf-8').buffer) }; // let encryptText = encryptMessage(key, plainText); let decryptText = decryptMessage(key, {data: encryptText}); console.error('decrypt plainText: ' + buffer.from(decryptText.data).toString('utf-8')); /*if (plainText.data.toString() === decryptText.data.toString()) { console.info('decrypt ok'); console.info('decrypt plainText: ' + buffer.from(decryptText.data).toString('utf-8')); } else { console.error('decrypt failed'); }*/ } catch (error) { console.error(`AES ECB “${error}“, error code: ${error.code}`); } }) } .height('100%') .width('100%') } }
AES加解密的请参考
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/crypto-aes-sym-encrypt-decrypt-ecb-V5
请参考以下示例: