C# 密码应与特定于区域性的密码或二进制密码进行比较?

C# 密码应与特定于区域性的密码或二进制密码进行比较?,c#,string,passwords,change-password,C#,String,Passwords,Change Password,众所周知,在unicode中比较字符串有不同的方法。其中之一是特定文化。在.Net中,这也是一个精心设计的主题 我目前在一个地方,我必须比较两个密码的平等性和不平等性。(不,不要与存储区进行比较-这是经过腌制和哈希处理的过程!)因此这是用于更改密码对话框的 这里的问题:它应该是特定于区域性的还是不可知的(例如在C#string.Compare()(==)或string.CompareOrdinal()中) 这意味着什么 另外,哈希是文化无关的(至少在.Net中是这样)?它应该与哈希版本测试的相等

众所周知,在unicode中比较字符串有不同的方法。其中之一是特定文化。在.Net中,这也是一个精心设计的主题

我目前在一个地方,我必须比较两个密码的平等性和不平等性。(不,不要与存储区进行比较-这是经过腌制和哈希处理的过程!)因此这是用于更改密码对话框的

这里的问题:它应该是特定于区域性的还是不可知的(例如在C#string.Compare()(==)或string.CompareOrdinal()中)

这意味着什么


另外,哈希是文化无关的(至少在.Net中是这样)?

它应该与哈希版本测试的相等性相匹配

基本上,假设其中一个密码已存储,而您正试图使用另一个密码登录-它会工作吗?这肯定是您要测试的


我个人很想简单地用你在别处使用的完全相同的代码对它们进行散列,并比较结果——这样你就可以保证与你真正关心的内容一致。

它应该与将对散列版本进行测试的相等性相匹配

基本上,假设其中一个密码已存储,而您正试图使用另一个密码登录-它会工作吗?这肯定是您要测试的


我个人很想简单地用你在别处使用的完全相同的代码对它们进行散列,并比较结果——这样你就可以保证与你真正关心的内容一致。

它应该与将对散列版本进行测试的相等性相匹配

基本上,假设其中一个密码已存储,而您正试图使用另一个密码登录-它会工作吗?这肯定是您要测试的


我个人很想简单地用你在别处使用的完全相同的代码对它们进行散列,并比较结果——这样你就可以保证与你真正关心的内容一致。

它应该与将对散列版本进行测试的相等性相匹配

基本上,假设其中一个密码已存储,而您正试图使用另一个密码登录-它会工作吗?这肯定是您要测试的


我个人很想用你在其他地方使用的完全相同的代码对它们进行散列,然后比较结果——这样你就可以保证与你真正关心的内容保持一致。

你为“更改密码”对话框指定的,所以我将解决这个问题

因为他们在“更改密码”对话框中输入密码的唯一目的是使用足够多的BCrypt、SCrypt或PBKDF2循环对密码进行加密和散列,而且这三种密码都使用对字节或字节集进行操作的原语(即,它们对1和0进行操作),则密码只有在其位相同时才相同

因此,必须使用二进制相等

更实用的是,因为他们只是背靠背地输入了两次,所以您应该期望并强制要求他们每次都以完全相同的方式输入


是的,哈希与区域性无关,因为哈希是对位和字节进行操作的,而不是对符号或含义,甚至是字符本身进行操作。

您为“更改密码”对话框指定的,因此我将对此进行说明

因为他们在“更改密码”对话框中输入密码的唯一目的是使用足够多的BCrypt、SCrypt或PBKDF2循环对密码进行加密和散列,而且这三种密码都使用对字节或字节集进行操作的原语(即,它们对1和0进行操作),则密码只有在其位相同时才相同

因此,必须使用二进制相等

更实用的是,因为他们只是背靠背地输入了两次,所以您应该期望并强制要求他们每次都以完全相同的方式输入


是的,哈希与区域性无关,因为哈希是对位和字节进行操作的,而不是对符号或含义,甚至是字符本身进行操作。

您为“更改密码”对话框指定的,因此我将对此进行说明

因为他们在“更改密码”对话框中输入密码的唯一目的是使用足够多的BCrypt、SCrypt或PBKDF2循环对密码进行加密和散列,而且这三种密码都使用对字节或字节集进行操作的原语(即,它们对1和0进行操作),则密码只有在其位相同时才相同

因此,必须使用二进制相等

更实用的是,因为他们只是背靠背地输入了两次,所以您应该期望并强制要求他们每次都以完全相同的方式输入


是的,哈希与区域性无关,因为哈希是对位和字节进行操作的,而不是对符号或含义,甚至是字符本身进行操作。

您为“更改密码”对话框指定的,因此我将对此进行说明

因为他们在“更改密码”对话框中输入密码的唯一目的是使用足够多的BCrypt、SCrypt或PBKDF2循环对密码进行加密和散列,而且这三种密码都使用对字节或字节集进行操作的原语(即,它们对1和0进行操作),则密码只有在其位相同时才相同

因此,必须使用二进制相等

更实用的是,因为他们只是背靠背地输入了两次,所以您应该期望并强制要求他们每次都以完全相同的方式输入


是的,哈希是区域性不可知的,因为哈希操作的是位和字节,而不是符号或含义,甚至是字符本身。

您应该比较哈希密码。哈希算法是区域性不可知的。您应该比较哈希密码。哈希算法是区域性不可知的。您应该比较哈希密码。哈希算法是区域性不可知的应该比较散列密码。散列算法是文化无关的。Hanks,这种方法在我看来非常有用