import cryptoFramework from '@ohos.security.cryptoFramework';
import { BusinessError } from '@kit.BasicServicesKit';
import { util } from '@kit.ArkTS';
function stringToArray(str: string): Uint8Array {
let textEncoder = new util.TextEncoder();
return textEncoder.encodeInto(str);
}
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
// LxamphMX2OpWNPZm
async onData(str: string, iv: string){
let cipherAlgName = 'AES128|CBC|PKCS5';
try {
let cipher = cryptoFramework.createCipher(cipherAlgName);
let symKeyGenerator = cryptoFramework.createSymKeyGenerator('AES128');
console.info('cipher algName:' + cipher.algName);
let keyMaterial = new Uint8Array(stringToArray('LxamphMX2OpWNPZm'));
try {
let symKey = await symKeyGenerator.convertKey({
data: keyMaterial
});
let ivParamsSpec = null;
if (iv !== '') {
// let ivData = {
// data: new Uint8Array(stringToArray(iv))
// };
// ivParamsSpec [''] = 'IvParamsSpec';
// ivParamsSpec[iv] = ivData;
}
await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, symKey, ivParamsSpec);
let res = await cipher.doFinal({
data: new Uint8Array(stringToArray(str))
});
// return YumpUtil.uint8ArrayToBase64String(res.data);
console.log('res.data>>23', JSON.stringify(res.data))
}catch(error){
console.log(`error:onData${JSON.stringify(error)}`);
}
} catch (error) {
let e: BusinessError = error as BusinessError;
console.error(`sync error, ${e.code}, ${e.message}`);
}
}
build() {
RelativeContainer() {
Button('onData').onClick(() =>{
this.onData('12369', '');
})
Text(this.message)
.id('HelloWorld')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.alignRules({
center: { anchor: '__container__', align: VerticalAlign.Center },
middle: { anchor: '__container__', align: HorizontalAlign.Center }
})
}
.height('100%')
.width('100%')
}
}
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。
可以参考如何使用AES算法加密。
参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V...