不幸的是,我有一些代码可以做到这一点:
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
当我尝试解密使用此编码存储的字符串时,我得到通常的“错误数据”和“无效块大小”加密异常。
任何信息或建议表示赞赏。