3
我正在开发一个REST API。客户端将其用户名和密码放入HttpClient
的授权头中,然后使用Server的公钥进行加密。用户名和密码将始终由字母和数字组成,这意味着它可以用ASCII表示。如何在Http Authorization Header中转换并发送字符串?
我正在使用此代码进行加密。
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轻松发送?
谢谢,它的工作原理。只需做一个小改动'Encoding.Unicode.GetBytes' – 2013-02-12 19:48:19