String 字符串消息身份验证

String 字符串消息身份验证,string,authentication,String,Authentication,我从客户端获取需要在服务器中进行身份验证的字符串消息。 我需要确保我(服务器)获得了客户端发送的确切字符串内容。我不在乎客户的身份。只是留言。 我想过使用哈希码或CRC算法。 你对此有什么建议/最佳实践吗 非常感谢, Adi Barda要确保字符串是相同的,那么是的,散列将完成这项工作。您将遇到的唯一问题是,如果服务器没有可匹配的内容,那么您所拥有的字符串与散列的字符串相同 你有特别使用的语言吗 下面是C#中的一个示例,它对字符串进行散列,然后将其转换为Base64: public st

我从客户端获取需要在服务器中进行身份验证的字符串消息。 我需要确保我(服务器)获得了客户端发送的确切字符串内容。我不在乎客户的身份。只是留言。 我想过使用哈希码或CRC算法。
你对此有什么建议/最佳实践吗

非常感谢,

Adi Barda

要确保字符串是相同的,那么是的,散列将完成这项工作。您将遇到的唯一问题是,如果服务器没有可匹配的内容,那么您所拥有的字符串与散列的字符串相同

你有特别使用的语言吗

下面是C#中的一个示例,它对字符串进行散列,然后将其转换为Base64:

    public static string QHash(string str)
    {
        SHA512 SHA512HashCreator = SHA512.Create();

        byte[] EncryptedData = SHA512HashCreator.ComputeHash(Encoding.UTF8.GetBytes(str));

        StringBuilder qhash = new StringBuilder();

        for (int i = 0; i < EncryptedData.Length; i++)
        {
            qhash.Append(EncryptedData[i].ToString("X2"));
        }

        return qhash.ToString().ToUpper();
    }
publicstaticstringqhash(stringstr)
{
SHA512 SHA512HashCreator=SHA512.Create();
byte[]EncryptedData=SHA512HashCreator.ComputeHash(Encoding.UTF8.GetBytes(str));
StringBuilder qhash=新的StringBuilder();
for(int i=0;i
究竟什么需要验证?客户的身份?您的服务器有哪些关于每个客户端的信息可以用来对它们进行身份验证?用户名+密码?或者,您的意思是要检测客户机是否为官方客户机而不是自制客户机?那一般来说是不可能的。你需要依靠模糊处理和/或法律。顺便说一下,CRC算法只对错误检测有用。它与身份验证无关。也许你把术语弄混了?谢谢,我更新了问题。