繁体   English   中英

无法将varchar类型转换为byte []

[英]Unable to convert varchar type to byte[]

我想将明文密码与保存在数据库中的crypted_pa​​ssword和salt比较,因为我有一个名为passwordisvalid()的函数,该函数具有3个参数(字符串,byte [],byte []),明文密码的字符串,byte []用于保存的cryptedpassword和保存的salt和crypted_pa​​ssword和salt属性是数据库中的varchar类型,所以我的问题是如何将varchar数据类型转换为byte [],以便可以将其传递给passwordisvalid()?

public static bool IsPasswordValid(string passwordPlainText, byte[] savedSaltBytes, byte[] savedHashBytes)
{
    byte[] array1 =GenerateSaltedHash(passwordPlainText,savedSaltBytes);
    byte[] array2 = savedHashBytes;

    if (array1.Length != array2.Length)
        return false;

    for (int i = 0; i < array1.Length; i++)
    {
        if (array1[i] != array2[i])
            return false;
    }

    return true;
} 

任何帮助将不胜感激。

数据库中的varchar元素应映射回字符串。 所以问题就变成了,我怎样才能将字符串转换为字节数组。

看一下这篇文章: 如何在C#中获得字符串的一致字节表示而无需手动指定编码? 它说明了如何在不使用utf编码的情况下转换为byte []。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM