Aes128|ECB|PKCS7的示例如下:import { cryptoFramework } from '@kit.CryptoArchitectureKit'; import { buffer, util } from '@kit.ArkTS'; @Entry() @Component struct AESEEBCrypto { @State message: string = '点击开始'; build() { Row() { Column() { Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) .onClick(() => { aesECB() }) } .width('100%') } .height('100%') } } const name: string = "" // 加密消息 function encryptMessage(symKey: cryptoFramework.SymKey, plainText: cryptoFramework.DataBlob) { let cipher = cryptoFramework.createCipher('AES128|ECB|PKCS7'); 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('AES128|ECB|PKCS7'); decoder.initSync(cryptoFramework.CryptoMode.DECRYPT_MODE, symKey, null); let decryptData = decoder.doFinalSync(cipherText); return decryptData; } async function genSymKeyByData(symKeyData: Uint8Array) { let symKeyBlob: cryptoFramework.DataBlob = { data: symKeyData }; let aesGenerator = cryptoFramework.createSymKeyGenerator('AES128'); let symKey = await aesGenerator.convertKey(symKeyBlob); console.info('convertKey success'); return symKey; } function uint8ArrayTo16(arr: Uint8Array) { // let arr = new Uint8Array([34, 22, 11, 34]); let str = buffer.from(arr).toString('hex') console.log(str) // 22160b22 let str2 = str.toUpperCase() console.log(str2) // 22160B22 return str2; } async function aesECB() { try { let base64 = new util.Base64Helper(); let keyData = "ffaa622axxx"; let key16 = new Uint8Array(buffer.from(keyData, 'utf-8').buffer) let symKey = await genSymKeyByData(key16/*keyData*/); let message = "xxx"; let plainText: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from(message, 'utf-8').buffer) }; console.info('plainText: ' + plainText.data.toString()); console.info('plainText: ' + buffer.from(plainText.data).toString('utf-8')); let encryptText = encryptMessage(symKey, plainText); console.info('encryptText: ' + encryptText.data.toString()); let text16 = uint8ArrayTo16(encryptText.data) console.error('encryptText: text16 ' + text16); let decryptText = decryptMessage(symKey, encryptText); console.info('decrypt ok'); console.info('decryptText: ' + decryptText.data.toString()); console.info('decryptText: ' + buffer.from(decryptText.data).toString('utf-8')); } catch (error) { console.error(`AES ECB “${error}“, error code: ${error.code}`); } }
Aes128|ECB|PKCS7的示例如下: