c#mysql utf_8_general_ci和密码哈希

时间:2014-02-04 19:05:12

标签: c# mysql node.js hash cryptography

我有一个由nodejs web服务器生成的sha512密码哈希,由于某种原因,c#没有正确解释它。

db中的哈希是:

09d5c4cfdf9449bba5c8f36f6feba141e91467d2602388930f2b4ec36939e60c3d81f6aec07ebdcab74c67d7c99e516521b5565e09ea547d66dc460a80b06b4e

C#调出的哈希是:

09d5c4cfdf9449bba5c8f36f6feba141e91467d2602388930f2b4ec36939e60c3d81f6aec07ebdcab74c67d7c99e516521b5565e09ea547d66dc460a80b06b㐀攀

正如您所看到的,最后两个字符是非utf8。

MySQL将哈希值存储在utf8_general_ci表中。以下是查询信息的代码片段。

我在某处读到c#字符串默认为utf16,我猜这就是问题所在,我该如何解决?

C Sharp

Command.CommandText = string.Format( "SELECT username, password FROM {0} WHERE state='{1}'", DatabaseTable, ( int )Status.Pending );
OdbcDataReader reader = Command.ExecuteReader( );

QueryCount += 1;

while( reader.Read() ){
    string username = reader.GetString(0);
    string password = reader.GetString(1);
    Console.WriteLine("Password from DB Is: {0}", password);    

0 个答案:

没有答案