我在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中使用此代码。请帮助我。
以下JavaScript首先将字符串转换为utf16字节数组。然后将数组转换为Base64编码的字符串。
_arrayBufferToBase64(strToUtf16Bytes(_cadenaAencriptar))
https://stackoverflow.com/a/9458996/361714
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 ); }
https://stackoverflow.com/a/51904484/361714
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#的输出匹配。