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