将 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# 的输出匹配。
我有一个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# 的输出匹配。