MD5加密结果不正确,应为32位实际31位。
加密的字符串如下:
ac=login&carrier=&channel=huawei_harmony&imgcode=&location_citycode=&mobile=13691467881&net=&os=ALN-AL80&os_type=Harmony&os_ver=xxxx&protocol=1&push_id=&push_switch=&rtime=&sid=&src=lx_harmony×tamp=1724380940&token=xxxx&u_salt=378b78f2&u_time=1724380940&vcode=&ver=100000&
HarmonyOS加密结果:
fc4bb9d80eb745c58f223a56aa9b2dd
Java加密结果:
fc04bb9d80eb745c58f223a56aa9b2dd
工具加密结果:
fc04bb9d80eb745c58f223a56aa9b2dd
加密部分代码如下:
export async function doMd(message: string): Promise<string> {
let md = cryptoFramework.createMd('MD5');
let md5: string = '';
await md.update({ data: new Uint8Array(buffer.from(message, 'utf-8').buffer) })
let data = await md.digest();
md5 = Array.from(data.data).map(byte =>
byte.toString(16)).join('')
return md5;
}
方法调用:
let J_sign = await doMd(mapString);
参考示例如下: