.net core 我可以使用sha1、sha256 lib生成的字符串作为哈希键吗

.net core 我可以使用sha1、sha256 lib生成的字符串作为哈希键吗,.net-core,hash,sha,.net Core,Hash,Sha,我正在寻找一种基于类的一些字符串属性创建哈希键的方法。 我想我可以使用sha1或sha256 LIB来生成键的值。 但我想知道,如果我将该值存储在DB中,那么,如果给定相同的字符串属性,另一个应用程序、不同的机器或不同版本的.net和.netcore是否能够生成相同的哈希?下面是生成哈希表的一个简单示例: public class Lead { public Lead(string firstname, string lastname, string phoneNumber)

我正在寻找一种基于类的一些字符串属性创建哈希键的方法。 我想我可以使用sha1或sha256 LIB来生成键的值。 但我想知道,如果我将该值存储在DB中,那么,如果给定相同的字符串属性,另一个应用程序、不同的机器或不同版本的.net和.netcore是否能够生成相同的哈希?下面是生成哈希表的一个简单示例:

 public class Lead
{
    public Lead(string firstname, string lastname, string phoneNumber)
    {
        this.firstname = firstname;
        this.lastname = lastname;
        phonenumber = phoneNumber;
        this.hash = GetHash($"{firstname}{lastname}{phoneNumber}");
    }

    private string GetHash(string key)
    {
        using var sha = new System.Security.Cryptography.SHA256Managed();
        byte[] textData = System.Text.Encoding.UTF8.GetBytes(key);
        byte[] hash = sha.ComputeHash(textData);
        return BitConverter.ToString(hash).Replace("-", string.Empty);
    }
    public string firstname;
    public string lastname;
    public string phonenumber;
    public string hash;
}

答案是肯定的,我还能够在.net中加密,并在rails中解密值

那杂烩的目的是什么?看看@Lex Li,你不能使用GetHash,不同.net版本之间的实现是不同的。这就是为什么我要问关于Sha1和SH256 LIB的问题。对不起,我应该指出这一点。