中文编码问题,​使用SHA256时原始字符串中有中文,导致和后端算出的结果不一致,该怎么解决?

​使用SHA256时原始字符串中有中文,导致和后端算出的结果不一致,该怎么解决?


HarmonyOS
2024-06-05 23:20:48
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
失望的满天星

参考代码:

// 字符串转成字节流 
function stringToUint8ArrayByte(str: string) { 
  return new Uint8Array(buffer.from(str,'utf-8').buffer); 
} 
// 字节流转成可理解的字符串 
function uint8ArrayToStringByte(array:Uint8Array) { 
  // 将UTF-8编码转换成Unicode编码 
  let out: string = ''; 
  let index: number = 0; 
  let len: number = array.length; 
  while (index < len) { 
    let character = array[index++]; 
    switch(character >> 4) { 
      case 0: 
      case 1: 
      case 2: 
      case 3: 
      case 4: 
      case 5: 
      case 6: 
      case 7: 
        out += String.fromCharCode(character); 
        break; 
      case 12: 
      case 13: 
        out += String.fromCharCode(((character & 0x1F) << 6) | (array[index++] & 0x3F)); 
        break; 
      case 14: 
        out += String.fromCharCode(((character & 0x0F) << 12) | ((array[index++] & 0x3F) << 6) | ((array[index++] & 0x3F) << 0)); 
        break; 
      default: 
        break; 
    } 
  } 
  return out; 
}
分享
微博
QQ
微信
回复
2024-06-06 23:06:06
相关问题
签名不一致报错怎么回事?
2664浏览 • 1回复 待解决
water flow 出现gap不一致问题
667浏览 • 1回复 待解决
启动和调试行为不一致
184浏览 • 1回复 待解决
Path组件绘制线条粗细不一致
1896浏览 • 1回复 待解决
napi里面,相同输入输出不一致
1655浏览 • 1回复 待解决
window 全屏操作不同设备表现不一致
347浏览 • 1回复 待解决
文字空行高度与字体高度不一致
2089浏览 • 1回复 待解决
中文字符串编解码,有人知道吗?
625浏览 • 1回复 待解决
HarmonyOS字符串SHA-1开发问题
412浏览 • 1回复 待解决