private static async desDecode(response: AxiosResponse<string, string>) {
let keyData = stringToUint8Array(NetConstants.KEY_DES3);
let symKey = await genSymKeyByData(keyData);
let base64 = new util.Base64Helper();
let encryptoMessage = base64.decodeSync(response.data);
let encryptoMes: cryptoFramework.DataBlob = { data: new Uint8Array(encryptoMessage) };
let decryptText = decryptMessage(symKey, encryptoMes);
let decodeResult = buffer.from(decryptText.data).toString('utf-8');
return decodeResult;
}
async function genSymKeyByData(symKeyData: Uint8Array) {
let symKeyBlob: cryptoFramework.DataBlob = { data: symKeyData };
let symGenerator = cryptoFramework.createSymKeyGenerator('3DES192');
let symKey = await symGenerator.convertKey(symKeyBlob);
console.info('convertKey success');
return symKey;
}
// 解密消息
function decryptMessage(symKey: cryptoFramework.SymKey, cipherText: cryptoFramework.DataBlob) {
let decoder = cryptoFramework.createCipher('3DES192|ECB|PKCS7');
decoder.initSync(cryptoFramework.CryptoMode.DECRYPT_MODE, symKey, null);
let decryptData = decoder.doFinalSync(cipherText);
return decryptData;
}
// 字符串转成字节流
function stringToUint8Array(str: string) {
return new Uint8Array(buffer.from(str, 'utf-8').buffer);
}
网友评论