我正在开发一个 REST API。HttpClient
客户端用服务器的公钥加密后,将其用户名和密码放在授权头中。用户名和密码总是由字母和数字组成,这意味着它可以用 ASCII 表示。
我正在使用此代码进行加密。
string encrypted = Encrypt (someText, crypto);
public static string Encrypt (string plainText, RSACryptoServiceProvider crypto)
{
var plainData = GetBytes (plainText);
var encryptedData = crypto.Encrypt (plainData, true);
return GetString (encryptedData);
}
public static byte[] GetBytes (string str)
{
var bytes = new byte[str.Length * sizeof (char)];
Buffer.BlockCopy (str.ToCharArray (), 0, bytes, 0, bytes.Length);
return bytes;
}
public static string GetString (byte[] bytes)
{
var chars = new char[bytes.Length / sizeof (char)];
Buffer.BlockCopy (bytes, 0, chars, 0, bytes.Length);
return new string (chars);
}
问题是我在加密后得到这个字符串
꠨屰⭮⬎㔾䐛え멩戻덒ேꑰꑰ䵇᷹᷹᷶᷶虣虣ⱒ̿ⱒ̿ⱒ̿ঊࠎঊࠎঊࠎ飳枹飳枹飳枹쉦폩쉦폩쉦폩ᤫᤫᤫᤫ 뉋⭠夏旻浨᠏რ
我无法在授权标头中发送这些 Unicode 字符。有什么方法可以获取 ASCII 中的加密文本,以便可以轻松地通过 HttpClient 发送?