可能我的问题很傻 但我很难把字符值转换成整数 然后再转换回来
问题是,我试图解密一个访问 DB 检索的字符组值。
这是我的代码
char chrVal = M ;
int intVal = (int)chrVal; // Output 77 M
// Now trying to encrypt using XOR
int encIntVal = intVal ^ 203; // Output 134 †
// Convert back
char correct = (char)(encIntVal ^ 203); // Output M - CORRECT
char wrong = (char)( † ^ 203); // Output WRONG value
事实上,当我使用加密 XOR 生成的英特值时,我就会得到正确的结果( M ) 。 相反,当我使用加密 XOR (这就是我在 DB 中拥有的) 的字符结果时,我得出错误的结果( 无法读取字符 ) 。
我试图使用不同的编码 但我不知道哪里出问题了
有什么建议吗?
最新更新
我发现问题可能在于ADO.NET OleDbDataReader, 因为(int)Cont.
所 待 养
字符 在 Windows 1252 代码页面中。 所以我得到一个字节, 其编码正确 。
byte[] byteVal = Encoding.GetEncoding(1252).GetBytes(dr["Sex"])
char correct = (char)(byteVal[0] ^ 203); // Output M
谢谢 谢谢