不幸的是,我有一些代碼,這是否:System.Text.Encoding.Default和密碼加密
byte[] plainText = System.Text.Encoding.ASCII.GetBytes(ClearText);
var btcipherText = enc.Encrypt(plainText, btkey);
System.Text.Encoding en = System.Text.Encoding.Default;
return en.GetString(btcipherText);
然後保存到數據庫用戶的密碼。
在單聲道,在Ubuntu 12.04上,System.Text.Encoding.Default
是System.Text.Encoding.UTF8,而在Windows 7上,它似乎是System.Text.SBCSCodePageEncoding
。
的密碼加密/解密代碼不應該被使用System.Text.Encoding.Default
,但這是繼承代碼。看着System.Text.Encoding
,並廣泛地搜索了我的問題,我無法確定如何使用標準編碼解碼此字符串,並且在這種情況下,在缺少原始編碼的Mono/Linux堆棧上。
我也奇怪未能找到System.Text.SBCSCodePageEncoding
當我嘗試解密存儲這個編碼字符串,我得到了一貫的「壞數據」太多的信息和「無效塊大小」加密例外。
的任何信息或建議讚賞。
的問題是,現在有使用SBCSCodePageEncoding編碼數據,而當我對其進行解碼,我也沒有明顯的選擇。 – dwerner
現有數據作爲字符串存儲在數據庫中,因此編碼是我的問題。 – dwerner
也許我只是不太清楚,因爲我需要了解我的情況。我仍然讚賞這一努力。然後使用默認編碼(上面的返回值)將加密後創建的byte []編碼爲字符串,並將其存儲在varchar字段中。所以當它被讀取時,它具有該編碼。當它被解碼回一個字節[]時,它使用編碼來做到這一點。是的,我現在可以正確地存儲字符串,比如說使用你的方法或者UTF8Encoding,但是現有的生產數據已經被該頁面代碼廢話編碼了。 – dwerner