将 javascript 个字符串字节编码为 base64

Encode javascript string bytes as base64

我有一个c#的代码

public static string Encriptar(string _cadenaAencriptar)
{
    string result = string.Empty;
    byte[] encodedData = System.Text.Encoding.Unicode.GetBytes(_cadenaAencriptar);
    result = Convert.ToBase64String(encodedData );
    return result;
}

我想要 javaScript 中的代码。 请帮帮我

所以你正在使用 utf16 编码的字符串并将 utf16 字节转换为 Base64 编码的字符串。

下面的JavaScript先把字符串转成utf16字节的数组。 然后将数组转换为Base64编码的字符串。

_arrayBufferToBase64(strToUtf16Bytes(_cadenaAencriptar))

function _arrayBufferToBase64( buffer ) {
    var binary = '';
    var bytes = new Uint8Array( buffer );
    var len = bytes.byteLength;
    for (var i = 0; i < len; i++) {
        binary += String.fromCharCode( bytes[ i ] );
    }
    return window.btoa( binary );
}

function strToUtf16Bytes(str) {
  const bytes = [];
  for (ii = 0; ii < str.length; ii++) {
    const code = str.charCodeAt(ii); // x00-xFFFF
    bytes.push(code & 255, code >> 8); // low, high
  }
  return bytes;
}

来自javascript的输出:

_arrayBufferToBase64(strToUtf16Bytes("hi"))
"aABpAA=="

这与 C# 的输出匹配。