以AES和SM4为例,随机生成对称密钥(SymKey),并获得二进制数据。
对称密钥对象可用于后续加解密操作,二进制数据可用于存储或传输。
对应的算法规格请查看对称密钥生成和转换规格:AES。
调用cryptoFramework.createSymKeyGenerator,指定字符串参数'AES256',创建密钥算法为AES、密钥长度为256位的对称密钥生成器(SymKeyGenerator)。
调用SymKeyGenerator.generateSymKey,随机生成对称密钥对象(SymKey)。
调用SymKey.getEncoded,获取密钥对象的二进制数据。
以使用Promise方式随机生成AES密钥为例:
import { cryptoFramework } from '@kit.CryptoArchitectureKit';
import { BusinessError } from '@kit.BasicServicesKit';
function testGenerateAesKey() {
// 创建SymKeyGenerator实例
let symKeyGenerator = cryptoFramework.createSymKeyGenerator('AES256');
// 使用密钥生成器随机生成对称密钥
let promiseSymKey = symKeyGenerator.generateSymKey();
promiseSymKey.then(key => {
// 获取对称密钥的二进制数据,输出256位密钥。长度为32字节
let encodedKey = key.getEncoded();
console.info('key hex: ' + encodedKey.data);
}).catch((error: BusinessError) => {
console.error(`testGenerateAesKey failed: errCode: ${error.code}, message: ${error.message}`);
});
} 同步方法(调用方法generateSymKeySync):
import { cryptoFramework } from '@kit.CryptoArchitectureKit';
import { BusinessError } from '@kit.BasicServicesKit';
function testSyncGenerateAesKey() {
try {
// 创建SymKeyGenerator实例
let symKeyGenerator = cryptoFramework.createSymKeyGenerator('AES256');
// 使用密钥生成器随机生成对称密钥
let symKey = symKeyGenerator.generateSymKeySync();
// 获取对称密钥的二进制数据,输出256位密钥。长度为32字节
let encodedKey = symKey.getEncoded();
console.info('key hex: ' + encodedKey.data);
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error(`testSyncGenerateAesKey failed: errCode: ${e.code}, errMsg: ${e.message}`);
}
} 对应的算法规格请查看对称密钥生成和转换规格:SM4。
调用cryptoFramework.createSymKeyGenerator,指定字符串参数'SM4_128',创建密钥算法为SM4、密钥长度为128位的对称密钥生成器(SymKeyGenerator)。
如果开发者需要使用其他算法,请注意修改此处入参的字符串参数。
调用SymKeyGenerator.generateSymKey,随机生成对称密钥对象(SymKey)。
调用SymKey.getEncoded,获取密钥对象的二进制数据。
以使用Promise方式随机生成SM4密钥为例:
import { cryptoFramework } from '@kit.CryptoArchitectureKit';
import { BusinessError } from '@kit.BasicServicesKit';
function testGenerateSM4Key() {
// 创建SymKeyGenerator实例
let symKeyGenerator = cryptoFramework.createSymKeyGenerator('SM4_128');
// 使用密钥生成器随机生成对称密钥
let promiseSymKey = symKeyGenerator.generateSymKey();
promiseSymKey.then(key => {
// 获取对称密钥的二进制数据,输出128位字节流。长度为16字节
let encodedKey = key.getEncoded();
console.info('key hex: ' + encodedKey.data);
}).catch((error: BusinessError) => {
console.error(`testGenerateSM4Key failed: errCode: ${error.code}, message: ${error.message}`);
});
} 同步方法(调用方法generateSymKeySync):
import { cryptoFramework } from '@kit.CryptoArchitectureKit';
import { BusinessError } from '@kit.BasicServicesKit';
function testSyncGenerateSm4Key() {
try {
// 创建SymKeyGenerator实例
let symKeyGenerator = cryptoFramework.createSymKeyGenerator('SM4_128');
// 使用密钥生成器随机生成对称密钥
let symKey = symKeyGenerator.generateSymKeySync();
// 获取对称密钥的二进制数据,输出128位字节流。长度为16字节
let encodedKey = symKey.getEncoded();
console.info('key hex: ' + encodedKey.data);
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error(`testSyncGenerateSm4Key failed: errCode: ${e.code}, errMsg: ${e.message}`);
}
}