HarmonyOS 鸿蒙Next 证书解析后CN怎么获取且中文
HarmonyOS 鸿蒙Next 证书解析后CN怎么获取且中文
更多关于HarmonyOS 鸿蒙Next 证书解析后CN怎么获取且中文的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
根据咨询你的问题 像是 string 转 Uint8Array的问题 可以尝试转一下试试
static stringToUint8Array(str: string): Uint8Array {
if (!str) {
logger.error('stringToUint8Array', 'params error');
throw new Error('stringToUint8Array, params error');
}
let arr: number[] = [];
for (let i = 0; i < str.length; ++i) {
arr.push(str.charCodeAt(i));
}
return new Uint8Array(arr);
}
如下处理可以获得中文,但CN的值,还需要自行分割截取出来,如果很影响开发,也可以试着重新提个需求单。
const formatStr = buffer.from(CNData).toString().replace(/\\/g, '\\');
const res = decodeURIComponent(formatStr.replace(/\\x/g, '%'))
console.log('CN=:' + res);
更多关于HarmonyOS 鸿蒙Next 证书解析后CN怎么获取且中文的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中,解析证书并获取CN(Common Name)且以中文显示,可以通过以下步骤实现:
首先,从证书中获取Subject Name的原始数据:
let CNData = x509Cert.getSubjectName().data;
接着,定义一个解析函数,将原始数据解码为UTF-8格式的字符串:
parseCN = (data: Uint8Array): string => {
let textDecoder = new TextDecoder('utf-8', { fatal: false, ignoreBOM: true });
return textDecoder.decode(data);
}
let CN = parseCN(CNData);
此时,CN
变量中存储的即为解码后的字符串,可能包含诸如/C=CN/ST=.../O=.../CN=...
等字段。为了提取出CN字段的中文值,可以使用正则表达式或字符串处理函数进行分割和提取。
例如,使用正则表达式提取CN字段后的值:
let cnMatch = CN.match(/CN=([^/]+)/);
let cnValue = cnMatch ? cnMatch[1] : '';
cnValue
即为所需的CN的中文值。
请注意,上述代码是基于JavaScript的示例,实际开发中可能需要根据具体的编程语言和库进行调整。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。